Modules

Macros

Structs

@brief Opaque directory structure

Type by which queues are referenced. For example, a call to xQueueCreate() returns an QueueHandle_t variable that can then be used as a parameter to xQueueSend(), xQueueReceive(), etc.

@brief ADC arbiter work mode and priority setting.

@brief ADC digital controller (DMA mode) clock system setting. Calculation formula: controller_clk = (APLL or APB) / (div_num + div_a / div_b + 1).

@brief ADC digital controller (DMA mode) configuration parameters.

@brief ADC digital controller (DMA mode) filter configuration.

@brief Digital ADC DMA configuration

@brief ADC digital controller (DMA mode) monitor configuration.

@brief ADC digital controller (DMA mode) output data format. Used to analyze the acquired ADC (DMA) data.

@brief ADC digital controller (DMA mode) conversion rules setting.

@brief Directory entry structure

@brief Structure storing characteristics of an ADC

\brief AES context structure

\brief The AES XTS context-type definition.

@brief Description about application.

@brief The structure represents information about the chip

@brief Configuration of Ethernet driver

@brief Ethernet MAC

@brief Ethernet mediator

@brief Ethernet PHY

Configuration for creating event loops

@brief OS-level integration hooks for accessing flash chips inside a running OS

@brief Structure for describing a region of flash

@brief Structure to describe a SPI flash chip connected to the system.

@brief HTTP configuration

@brief HTTP Client events data

@brief Main header of binary image

@brief Header of binary image segment

MQTT client configuration structure

@brief MQTT error code structure to be passed as a contextual information into ERROR event

MQTT event configuration structure

@brief Generic esp_netif configuration

@brief DNS server info

@brief Specific IO driver configuration

@brief IPV6 IP address information

Event structure for IP_EVENT_STA_GOT_IP, IP_EVENT_ETH_GOT_IP events

@brief Type of esp_netif_object server

@brief station list info element

@brief station list structure

@brief partition information structure

@brief Type of “ping” callback functions

@brief Type of “ping” configuration

@brief Power management config for ESP32C3

pthread configuration structure that influences pthread creation

@brief Timer configuration passed to esp_timer_create

@brief ESP-TLS Connection Handle

@brief ESP-TLS configuration parameters

@brief Error structure containing relevant errors in case tls error occurred

@brief Configuration arguments for esp_vfs_fat_sdmmc_mount and esp_vfs_fat_spiflash_mount functions

@brief VFS semaphore type for select()

@brief Configuration structure for esp_vfs_spiffs_register

@brief VFS definition structure

Configuration for the essl SDIO device

@brief Configuration of Ethernet MAC object

@brief Ethernet PHY configuration

@brief Configuration parameters of GPIO pad for gpio_config function

@brief HTTP Server Configuration Structure

@brief HTTP Request Data Structure

@brief Structure for URI handler

@brief I2C initialization parameters

@brief I2S configuration parameters for i2s_param_config function

@brief Event structure used in I2S event queue

Context that should be maintained by both the driver and the HAL

@brief I2S pin number for i2s_set_pin

This is the aligned version of ip4_addr_t, used as local variable, on the stack, etc.

This is the aligned version of ip6_addr_t, used as local variable, on the stack, etc.

@ingroup ipaddr A union struct for both IP version’s addresses. ATTENTION: watch out for its size when adding IPv6 address scope!

Event structure for IP_EVENT_AP_STAIPASSIGNED event

Event structure for IP_EVENT_GOT_IP6 event

@brief Configuration parameters of LEDC channel for ledc_channel_config function

@brief Configuration parameters of LEDC Timer timer for ledc_timer_config function

Container for ASN1 bit strings.

Type-length-value structure that allows for ASN1 using DER.

Container for a sequence or list of ‘named’ ASN.1 data items

Container for a sequence of ASN.1 items

Generic cipher context.

Cipher information. Allows calling cipher functions in a generic way.

\brief The CTR_DRBG context structure.

\brief The DHM context structure.

\warning Performing multiple operations concurrently on the same ECDSA context is not supported; objects of this type should not be shared between multiple threads. \brief The ECDH context structure.

Curve information, for use by other modules.

\brief The ECP group structure.

\brief The ECP key-pair structure.

\brief The ECP point structure, in Jacobian coordinates.

\brief Entropy context structure

\brief Entropy source state

The generic message-digest context.

\brief MPI structure

Wrapper type for sockets.

\brief Public key container

\brief Item to send to the debug module

\brief Options for RSASSA-PSS signature verification. See \c mbedtls_rsa_rsassa_pss_verify_ext()

\brief The platform context structure.

\brief The RSA context structure.

\brief The SHA-512 context structure.

\brief This structure is used for storing ciphersuite information

SSL/TLS configuration to be shared between mbedtls_ssl_context structures.

Certificate revocation list structure. Every CRL may have multiple entries.

Certificate revocation list entry. Contains the CA-specific serial numbers and revocation dates.

Container for an X.509 certificate. The certificate may be chained.

Security profile for certificate verification.

Verification chain as built by \c mbedtls_crt_verify_chain()

Item in a verification chain: cert and flags for it

Container for date and time (precision in seconds).

Container for writing a certificate (CRT)

@brief mDNS query linked list IP item

@brief mDNS query result structure

@brief mDNS basic text item structure Used in mdns_service_add()

Memory pool descriptor

@brief The crypto callback function structure used in mesh vendor IE encryption. The structure can be set as software crypto or the crypto optimized by ESP32 hardware.

@brief Structure to access heap metadata via multi_heap_get_info

Generic data structure used for all lwIP network interfaces. The following fields should be filled in by the initialization function for the device driver: hwaddr_len, hwaddr[], mtu, flags

Args to LWIP_NSC_IPV4_ADDRESS_CHANGED|LWIP_NSC_IPV4_GATEWAY_CHANGED|LWIP_NSC_IPV4_NETMASK_CHANGED|LWIP_NSC_IPV4_SETTINGS_CHANGED callback

Args to LWIP_NSC_IPV6_ADDR_STATE_CHANGED callback

Args to LWIP_NSC_IPV6_SET callback

Args to LWIP_NSC_LINK_CHANGED callback

Args to LWIP_NSC_STATUS_CHANGED callback

@brief information about entry obtained from nvs_entry_info function

@brief Key for encryption and decryption

@note Info about storage space NVS.

Main packet buffer struct

A custom pbuf: like a pbuf, but following a function pointer to free it.

Helper struct for const-correctness only. The only meaning of this one is to provide a const payload pointer for PBUF_ROM type.

@brief ESP-TLS preshared key and hint structure

@brief Data struct of RMT channel status

@brief Data struct of RMT configure parameters

@brief Data struct of RMT RX configure parameters

@brief Data struct of RMT TX configure parameters

@brief Structure encapsulating a RMT TX end callback

Initialization parameters for rtc_clk_init

RTC power and clock control initialization settings

@brief CPU clock configuration structure

@brief sleep configuration for rtc_sleep_init function

@brief Power down flags for rtc_sleep_pd function

Structure describing vddsdio configuration

SD/MMC card information structure

Decoded values from SD card Card IDentification register

SD/MMC command information

Decoded values from SD card Card Specific Data register

Decoded values of Extended Card Specific Data

SD/MMC Host description

Decoded values from SD Configuration Register

SD SWITCH_FUNC response buffer

Extra configuration for SD SPI device.

Extra configuration for SPI host.

@brief Sigma-delta configure struct

@brief This is a configuration structure for a SPI bus.

@brief This is a configuration for a SPI slave device that is connected to one of the SPI buses.

Structure holding SPI flash access critical sections management functions.

Host driver configuration and context structure.

SPI Flash Host driver instance

Configuration structure for the flash chip suspend feature.

Definition of a common transaction. Also holds the return value.

@brief This is a configuration for a SPI host acting as a slave device.

This structure describes one SPI transaction

This struct is for SPI transactions which may change their address and command length. Please do set the flags in base to SPI_TRANS_VARIABLE_CMD_ADR to use the bit length here.

This structure describes one SPI transaction. The descriptor should not be modified until the transaction finishes.

Event, as a tagged enum

@brief legacy ip_info type

@brief Data structure with timer’s configuration settings

@brief Keep alive parameters structure

Touch sensor filter configuration

Touch sensor denoise configuration

Touch sensor channel sleep configuration

Touch sensor waterproof configuration

Type by which tasks are referenced. For example, a call to xTaskCreate returns (via a pointer parameter) an TaskHandle_t variable that can then be used as a parameter to vTaskDelete to delete the task.

@brief Structure for acceptance filter configuration of the TWAI driver (see documentation)

@brief Structure for general configuration of the TWAI driver

@brief Structure to store a TWAI message

@brief Structure to store status information of TWAI driver

@brief Structure for bit timing configuration of the TWAI driver

@brief UART AT cmd char configuration parameters Note that this function may different on different chip. Please refer to the TRM at confirguration.

@brief UART configuration parameters for uart_param_config function

@brief Event structure used in UART event queue

@brief UART interrupt configuration parameters for uart_intr_config function

@brief UART software flow control configuration parameters

@brief Vendor Information Element header

@brief Action Frame Tx Request

@brief Range of active scan times per channel

@brief WiFi antenna configuration

@brief WiFi GPIOs configuration for antenna selection

@brief WiFi GPIO configuration for antenna selection

@brief Soft-AP configuration settings for the ESP32

@brief Description of a WiFi AP

@brief Structure describing WiFi country-based regional restrictions.

@brief Channel state information(CSI) configuration type

@brief CSI data type

Argument structure for WIFI_EVENT_ACTION_TX_STATUS event

Argument structure for WIFI_EVENT_AP_PROBEREQRECVED event

Argument structure for WIFI_EVENT_AP_STACONNECTED event

Argument structure for WIFI_EVENT_AP_STADISCONNECTED event

Argument structure for WIFI_EVENT_STA_BSS_RSSI_LOW event

Argument structure for WIFI_EVENT_FTM_REPORT event

Argument structure for WIFI_EVENT_ROC_DONE event

Argument structure for WIFI_EVENT_STA_AUTHMODE_CHANGE event

Argument structure for WIFI_EVENT_STA_CONNECTED event

Argument structure for WIFI_EVENT_STA_DISCONNECTED event

Argument structure for WIFI_EVENT_SCAN_DONE event

Argument structure for WIFI_EVENT_STA_WPS_ER_PIN event

Argument structure for WIFI_EVENT_STA_WPS_ER_SUCCESS event

@brief FTM Initiator configuration

Argument structure for

@brief WiFi stack configuration parameters passed to esp_wifi_init call.

@brief Received packet radio metadata header, this is the common header at the beginning of all promiscuous mode RX callback buffers

Configuration structure for Protected Management Frame

@brief Mask for filtering different packet types in promiscuous mode.

@brief Payload passed to ‘buf’ parameter of promiscuous mode RX callback.

@brief Parameters for an SSID scan.

@brief Structure describing parameters for a WiFi fast scan

@brief Aggregate of active & passive scan time per channel

@brief STA configuration settings for the ESP32

@brief Description of STA associated with AP

@brief List of stations associated with the ESP32 Soft-AP

@brief The crypto callback function structure used when do station security connect. The structure can be set as software crypto or the crypto optimized by ESP32 hardware.

Defines the memory ranges allocated to the task when an MPU is used.

Used with the uxTaskGetSnapshotAll() function to save memory snapshot of each task in the system. We need this struct because TCB_t is defined (hidden) in tasks.c.

@cond */ Used internally only.

Constants

< Chip did not respond to the command, or timed out.

< The chip doesn’t have enough space for the current partition table

< return failed in ets

< return successful in ets

Key length, in bits (including parity), for DES keys.

Key length in bits, including parity, for DES in two-key EDE.

Key length in bits, including parity, for DES in three-key EDE.

Undefined key length.

Allow-split buffers will split an item into two parts if necessary in order to store it. Each item requires an 8 byte overhead for a header, splitting incurs an extra header. Each item will always internally occupy a 32-bit aligned size of space.

Byte buffers store data as a sequence of bytes and do not maintain separate items, therefore byte buffers have no overhead. All data is stored as a sequence of byte and any number of bytes can be sent or retrieved each time.

Byte buffers store data as a sequence of bytes and do not maintain separate items, therefore byte buffers have no overhead. All data is stored as a sequence of byte and any number of bytes can be sent or retrieved each time.

No-split buffers will only store an item in contiguous memory and will never split an item. Each item requires an 8 byte overhead for a header and will always internally occupy a 32-bit aligned size of space.

< ADC1 channel 0 is GPIO0

< ADC1 channel 1 is GPIO1

< ADC1 channel 2 is GPIO2

< ADC1 channel 3 is GPIO3

< ADC1 channel 4 is GPIO4

< ADC2 channel 0 is GPIO5

<Fixed priority switch controller mode.

<Loop priority switch controller mode. Each controller has the same priority, and the arbiter will switch to the next controller after the measurement is completed.

<Force shield arbiter, Select the highest priority controller to work.

<No input attenumation, ADC can measure up to approx. 800 mV.

<The input voltage of ADC will be attenuated, extending the range of measurement to up to approx. 1100 mV.

<The input voltage of ADC will be attenuated, extending the range of measurement to up to approx. 1350 mV.

<The input voltage of ADC will be attenuated, extending the range of measurement to up to approx. 2600 mV.

< ADC capture width is 12Bit.

< SAR ADC 1 and 2 alternative mode.

<The filter index 0. For ESP32-S2, It can only be used to filter all enabled channels of ADC1 unit at the same time.

<The filter index 1. For ESP32-S2, It can only be used to filter all enabled channels of ADC2 unit at the same time.

<The filter mode is first-order IIR filter. The coefficient is 2.

<The filter mode is first-order IIR filter. The coefficient is 4.

<The filter mode is first-order IIR filter. The coefficient is 8.

<The filter mode is first-order IIR filter. The coefficient is 16.

<The filter mode is first-order IIR filter. The coefficient is 64.

<The monitor index 0. For ESP32-S2, It can only be used to monitor all enabled channels of ADC1 unit at the same time.

<The monitor index 1. For ESP32-S2, It can only be used to monitor all enabled channels of ADC2 unit at the same time.

<If ADC_OUT < threshold, Generates monitor interrupt. */

<ADC to DMA data format, [15]-adc unit, [14:11]-channel, [10: 0]-11 bits ADC data (adc_digi_output_data_t). Note: For multi or alter convert mode.

<ADC to DMA data format, [15:12]-channel, [11: 0]-12 bits ADC data (adc_digi_output_data_t). Note: For single convert mode.

< ADC to DMA data format, [15]-unit, [14:11]-channel [10:0]-11 bits ADC data

< ADC to DMA data format, , [15:12]-channel [11:0]-12 bits ADC data

< I2S data from GPIO matrix signal

< SAR ADC 1 and 2 alternative mode.

< SAR ADC 1 and 2.

Connection aborted.

Already connecting.

Illegal argument.

Buffer error.

Connection closed.

Not connected.

Low-level netif error

Operation in progress

Conn already established.

Out of memory error.

No error, everything OK.

Connection reset.

Routing problem.

Address in use.

Illegal value.

Operation would block.

< Characterization based on default reference voltage

< Characterization based on Two Point values stored in eFuse

< Characterization based on reference voltage stored in eFuse

< Invalid chip ID (we defined it to make sure the esp_chip_id_t is 2 bytes size)

< Link status changed

< Pause ability updated

< Both address & data transferred using dual I/O

< Data read using dual I/O

< Data read using single I/O, no limit on speed

< Both address & data transferred using quad I/O

< Data read using quad I/O

< The fastest io mode supported by the host is ESP_FLASH_READ_MODE_MAX-1.

< Data read using single I/O, some limits on speed

< The flash runs under 5MHz

< The flash runs under 10MHz

< The flash runs under 20MHz

< The flash runs under 26MHz

< The flash runs under 40MHz

< The flash runs under 80MHz

< The maximum frequency supported by the host is ESP_FLASH_SPEED_MAX-1.

< The connection has been disconnected

< This event occurs when there are any errors during execution

< After sending all the headers to the server

< This header has been kept for backward compatability and will be deprecated in future versions esp-idf

< Once the HTTP has been connected to the server, no data exchange has been performed

< Occurs when receiving data from the server, possibly multiple portions of the packet

< Occurs when finish a HTTP session

< Occurs when receiving each header sent from the server

< ESP32 ethernet interface

< ESP32 soft-AP interface

< ESP32 station interface

< Extra information which is not necessary for normal use (values, pointers, sizes, etc).

< Critical errors, software module can not recover on its own

< Information messages which describe normal flow of events

< Bigger chunks of debugging information, or frequent messages which can potentially flood the output.

< Error conditions from which recovery measures have been taken

< MQTT connection refused reason: Wrong user

< MQTT connection refused reason: ID rejected

< MQTT connection refused reason: Wrong username or password

< MQTT connection refused reason: Wrong protocol

< MQTT connection refused reason: Server unavailable

< The event occurs before connecting

< connected event, additional context: session_present flag

< data event, additional context:

< Notification on delete of one message from the internal outbox, if the message couldn’t have been sent and acknowledged before expiring defined in OUTBOX_EXPIRED_TIMEOUT_MS. (events are not posted upon deletion of successfully acknowledged messages)

< on error event, additional context: connection return code, error handle from esp_tls (if supported)

< published event, additional context: msg_id

< subscribed event, additional context: msg_id

< MQTT over SSL, using scheme: mqtts

< MQTT over TCP, using scheme: mqtt

< MQTT over Websocket, using scheme:: ws

< MQTT over Websocket Secure, using scheme: wss

< DHCP client/server is in initial state (not yet started)

< DHCP client/server has been started

< DHCP client/server has been stopped

< DNS backup server address (Wi-Fi STA and Ethernet only)

< DNS fallback server address (Wi-Fi STA and Ethernet only)

< DNS main server address

< App could not confirm the workable or non-workable. In bootloader IMG_PENDING_VERIFY state will be changed to IMG_ABORTED. This app will not selected to boot at all.

< App was confirmed as non-workable. This app will not selected to boot at all.

< Monitor the first boot. In bootloader this state is changed to ESP_OTA_IMG_PENDING_VERIFY.

< First boot for this app was. If while the second boot this state is then it will be changed to ABORTED.

< Undefined. App can boot and work without limits.

< App was confirmed as workable. App can boot and work without limits.

!< Used to search for partitions with any subtype

!< Undefined (or unspecified) data partition

!< Application partition type

< Elapsed time of the whole ping session

< IP address of replied target

< Number of reply packets received

< Number of request packets sent out

< Sequence number of a ping procedure

< Size of received packet

< Elapsed time between request and reply packet

< Time to live of a ping procedure

Require APB frequency to be at the maximum value supported by the chip. Argument is unused and should be set to 0.

Require CPU frequency to be at the maximum value set via esp_pm_configure. Argument is unused and should be set to 0.

Prevent the system from going into light sleep. Argument is unused and should be set to 0.

!< Brownout reset (software or hardware)

!< Reset after exiting deep sleep mode

!< Reset by external pin (not applicable for ESP32)

!< Reset (software or hardware) due to interrupt watchdog

!< Software reset due to exception/panic

!< Reset due to power-on event

!< Software reset via esp_restart

!< Reset due to task watchdog

!< Reset reason can not be determined

!< Reset due to other watchdogs

!< Wake the chip when all selected GPIOs go low

!< Wake the chip when any of the selected GPIOs go high

!< RTC IO, sensors and ULP co-processor

!< Keep power domain enabled in sleep mode, if it is needed by one of the wakeup options. Otherwise power it down.

!< Power down the power domain in sleep mode

!< Keep power domain enabled during sleep mode

!< Not a wakeup cause, used to disable all wakeup sources with esp_sleep_disable_wakeup_source

!< Wakeup caused by BT (light sleep only)

!< Wakeup caused by COCPU int

!< Wakeup caused by external signal using RTC_IO

!< Wakeup caused by external signal using RTC_CNTL

!< Wakeup caused by GPIO (light sleep only)

!< Wakeup caused by UART (light sleep only)

!< Wakeup caused by ULP program

!< In case of deep sleep, reset was not caused by exit from deep sleep

!< Wakeup caused by WIFI (light sleep only)

!< Callback is called from timer task

< ESP-IDF error type – esp_err_t

< Last err type – invalid entry

< Error code from mbedTLS library

< Certificate flags defined in mbedTLS

< Error code from wolfSSL library

< Certificate flags defined in wolfSSL

< Ethernet is in full duplex

< Ethernet is in half duplex

< Ethernet got a valid link

< Ethernet lost a valid link

< Ethernet driver start

< Ethernet driver stop

< Ethernet link is down

< Ethernet link is up

< Ethernet speed is 10Mbps

< Ethernet speed is 100Mbps

< Pad drive capability: weak

< Pad drive capability: stronger

< Pad drive capability: medium

< Pad drive capability: strongest

< Pad drive capability: medium

< GPIO interrupt type : both rising and falling edge

< Disable GPIO interrupt

< GPIO interrupt type : input high level trigger

< GPIO interrupt type : input low level trigger

< GPIO interrupt type : falling edge

< GPIO interrupt type : rising edge

< GPIO mode : disable input and output

< GPIO mode : input only

< GPIO mode : output and input mode

< GPIO mode : output and input with open-drain mode

< GPIO mode : output only mode

< GPIO mode : output only with open-drain mode

< GPIO0, input and output

< GPIO1, input and output

< GPIO2, input and output

< GPIO3, input and output

< GPIO4, input and output

< GPIO5, input and output

< GPIO6, input and output

< GPIO7, input and output

< GPIO8, input and output

< GPIO9, input and output

< GPIO10, input and output

< GPIO11, input and output

< GPIO12, input and output

< GPIO13, input and output

< GPIO14, input and output

< GPIO15, input and output

< GPIO16, input and output

< GPIO17, input and output

< GPIO18, input and output

< GPIO19, input and output

< GPIO20, input and output

< GPIO21, input and output

< GPIO22, input and output

< Use to signal not connected to S/W

< Pad pull up + pull down

< Disable GPIO pull-down resistor

< Enable GPIO pull-down resistor

< Disable GPIO pull-up resistor

< Enable GPIO pull-up resistor

< I2C ack for each byte read

< I2C nack for the last byte

< I2C nack for each byte read

< I2C 7bit address for slave mode

< I2C 10bit address for slave mode

< I2C master mode

< I2C slave mode

< I2C read data

< I2C write data

< I2C source clock not selected

< I2C source clock from 8M RTC, 8M

< I2C source clock from XTAL, 40M

< I2S 1 channel (mono)

< I2S 2 channel (stereo)

< Clock from PLL_D2_CLK(160M)

< I2S communication format I2S, correspond to I2S_COMM_FORMAT_STAND_I2S

< I2S format LSB, (I2S_COMM_FORMAT_I2S |I2S_COMM_FORMAT_I2S_LSB) correspond to I2S_COMM_FORMAT_STAND_MSB

< I2S format MSB, (I2S_COMM_FORMAT_I2S |I2S_COMM_FORMAT_I2S_MSB) correspond to I2S_COMM_FORMAT_STAND_I2S

< I2S communication format PCM, correspond to I2S_COMM_FORMAT_STAND_PCM_SHORT

< PCM Long, (I2S_COMM_FORMAT_PCM | I2S_COMM_FORMAT_PCM_LONG) correspond to I2S_COMM_FORMAT_STAND_PCM_LONG

< PCM Short, (I2S_COMM_FORMAT_PCM | I2S_COMM_FORMAT_PCM_SHORT) correspond to I2S_COMM_FORMAT_STAND_PCM_SHORT

< I2S communication I2S Philips standard, data launch at second BCK

< I2S communication MSB alignment standard, data launch at first BCK

< PCM Long standard. The period of synchronization signal (WS) is channel_bit*bck cycles.

< PCM Short standard, also known as DSP mode. The period of synchronization signal (WS) is 1 bck cycle.

< Enable both of the I2S built-in DAC channels.

< Disable I2S built-in DAC signals

< Enable I2S built-in DAC left channel, maps to DAC channel 2 on GPIO26

< I2S built-in DAC mode max index

< Enable I2S built-in DAC right channel, maps to DAC channel 1 on GPIO25

< I2S event max index

< I2S DMA finish received 1 buffer

< I2S DMA finish sent 1 buffer

< I2S port max

< soft-AP assign an IP to a connected station

< ethernet got IP from connected AP

< station or ap or ethernet interface v6IP addr is preferred

< PPP interface got IP

< PPP interface lost IP

< station got IP from connected AP

< station lost IP and the IP is reset to 0

< The driver will automatically select the source clock(REF_TICK or APB) based on the giving resolution and duty parameter when init the timer

< LEDC timer select APB clock as source clock

< LEDC timer select REF_TICK clock as source clock

< LEDC timer select RTC8M_CLK as source clock. Only for low speed channels and this parameter must be the same for all low speed channels

< LEDC timer select XTAL clock as source clock

< LEDC timer clock divided from APB clock (80Mhz)

< LEDC timer clock divided from reference tick (1Mhz)

< LEDC duty decrease direction

< LEDC duty increase direction

< LEDC fade function will return immediately

< LEDC fade function will block until fading to the target duty

< Disable LEDC interrupt

< Enable LEDC interrupt

< LEDC low speed speed_mode

< LEDC low speed timer clock source is 80MHz APB clock

< LEDC low speed timer clock source is 8MHz RTC clock

< LEDC low speed timer clock source XTAL clock

< LEDC PWM duty resolution of 1 bits

< LEDC PWM duty resolution of 2 bits

< LEDC PWM duty resolution of 3 bits

< LEDC PWM duty resolution of 4 bits

< LEDC PWM duty resolution of 5 bits

< LEDC PWM duty resolution of 6 bits

< LEDC PWM duty resolution of 7 bits

< LEDC PWM duty resolution of 8 bits

< LEDC PWM duty resolution of 9 bits

< LEDC PWM duty resolution of 10 bits

< LEDC PWM duty resolution of 11 bits

< LEDC PWM duty resolution of 12 bits

< LEDC PWM duty resolution of 13 bits

< LEDC PWM duty resolution of 14 bits

IPv4+IPv6 (“dual-stack”)

< Placeholder to mark the end of cipher ID lists.

< The identity cipher, treated as a stream cipher.

< The ChaCha-Poly cipher mode.

< Never pad (full blocks only).

< Zero padding (not reversible).

< AES cipher with 128-bit CBC mode.

< AES cipher with 128-bit CCM mode.

< AES cipher with 128-bit CFB128 mode.

< AES cipher with 128-bit CTR mode.

< AES cipher with 128-bit ECB mode.

< AES cipher with 128-bit GCM mode.

< AES 128-bit cipher in OFB mode.

< AES 128-bit cipher in XTS block mode.

< AES cipher with 192-bit CBC mode.

< AES cipher with 192-bit CCM mode.

< AES cipher with 192-bit CFB128 mode.

< AES cipher with 192-bit CTR mode.

< AES cipher with 192-bit ECB mode.

< AES cipher with 192-bit GCM mode.

< AES 192-bit cipher in OFB mode.

< AES cipher with 256-bit CBC mode.

< AES cipher with 256-bit CCM mode.

< AES cipher with 256-bit CFB128 mode.

< AES cipher with 256-bit CTR mode.

< AES cipher with 256-bit ECB mode.

< AES cipher with 256-bit GCM mode.

< AES 256-bit cipher in OFB mode.

< AES 256-bit cipher in XTS block mode.

< RC4 cipher with 128-bit mode.

< Aria cipher with 128-bit key and CBC mode.

< Aria cipher with 128-bit key and CCM mode.

< Aria cipher with 128-bit key and CFB-128 mode.

< Aria cipher with 128-bit key and CTR mode.

< Aria cipher with 128-bit key and ECB mode.

< Aria cipher with 128-bit key and GCM mode.

< Aria cipher with 192-bit key and CBC mode.

< Aria cipher with 192-bit key and CCM mode.

< Aria cipher with 192-bit key and CFB-128 mode.

< Aria cipher with 192-bit key and CTR mode.

< Aria cipher with 192-bit key and ECB mode.

< Aria cipher with 192-bit key and GCM mode.

< Aria cipher with 256-bit key and CBC mode.

< Aria cipher with 256-bit key and CCM mode.

< Aria cipher with 256-bit key and CFB-128 mode.

< Aria cipher with 256-bit key and CTR mode.

< Aria cipher with 256-bit key and ECB mode.

< Aria cipher with 256-bit key and GCM mode.

< Blowfish cipher with CBC mode.

< Blowfish cipher with CFB64 mode.

< Blowfish cipher with CTR mode.

< Blowfish cipher with ECB mode.

< Camellia cipher with 128-bit CBC mode.

< Camellia cipher with 128-bit CCM mode.

< Camellia cipher with 128-bit CFB128 mode.

< Camellia cipher with 128-bit CTR mode.

< Camellia cipher with 128-bit ECB mode.

< Camellia cipher with 128-bit GCM mode.

< Camellia cipher with 192-bit CBC mode.

< Camellia cipher with 192-bit CCM mode.

< Camellia cipher with 192-bit CFB128 mode.

< Camellia cipher with 192-bit CTR mode.

< Camellia cipher with 192-bit ECB mode.

< Camellia cipher with 192-bit GCM mode.

< Camellia cipher with 256-bit CBC mode.

< Camellia cipher with 256-bit CCM mode.

< Camellia cipher with 256-bit CFB128 mode.

< Camellia cipher with 256-bit CTR mode.

< Camellia cipher with 256-bit ECB mode.

< Camellia cipher with 256-bit GCM mode.

< DES cipher with EDE3 CBC mode.

< DES cipher with EDE3 ECB mode.

< DES cipher with EDE CBC mode.

< DES cipher with EDE ECB mode.

< Placeholder to mark the end of cipher-pair lists.

< The identity stream cipher.

< Domain parameters for 256-bit Brainpool curve.

< Domain parameters for 384-bit Brainpool curve.

< Domain parameters for 512-bit Brainpool curve.

< Domain parameters for Curve448.

< Domain parameters for Curve25519.

< Domain parameters for 192-bit “Koblitz” curve.

< Domain parameters for the 192-bit curve defined by FIPS 186-4 and SEC1.

< Domain parameters for 224-bit “Koblitz” curve.

< Domain parameters for the 224-bit curve defined by FIPS 186-4 and SEC1.

< Domain parameters for 256-bit “Koblitz” curve.

< Domain parameters for the 256-bit curve defined by FIPS 186-4 and SEC1.

< Domain parameters for the 384-bit curve defined by FIPS 186-4 and SEC1.

< Domain parameters for the 521-bit curve defined by FIPS 186-4 and SEC1.

< The MD2 message digest.

< The MD4 message digest.

< The MD5 message digest.

< The RIPEMD-160 message digest.

< The SHA-1 message digest.

< The SHA-224 message digest.

< The SHA-256 message digest.

< The SHA-384 message digest.

< The SHA-512 message digest.

< Type uint8_t

< Type uint16_t

< Type uint32_t

< Type uint64_t

Includes spare room for IP header. Use this if you intend to pass the pbuf to functions like raw_send().

Includes spare room for link layer header (ethernet header). Use this if you intend to pass the pbuf to functions like ethernet_output(). @see PBUF_LINK_HLEN

Use this for input packets in a netif driver when calling netif->input() in the most common case - ethernet-layer netif driver.

Includes spare room for additional encapsulation header before ethernet headers (e.g. 802.11). Use this if you intend to pass the pbuf to functions like netif->linkoutput(). @see PBUF_LINK_ENCAPSULATION_HLEN

Includes spare room for transport layer header, e.g. UDP header. Use this if you intend to pass the pbuf to functions like udp_send().

pbuf payload refers to RAM. This one comes from a pool and should be used for RX. Payload can be chained (scatter-gather RX) but like PBUF_RAM, struct pbuf and its payload are allocated in one piece of contiguous memory (so the first payload byte can be calculated from struct pbuf). Don’t use this for TX, if the pool becomes empty e.g. because of TCP queuing, you are unable to receive TCP acks!

pbuf data is stored in RAM, used for TX mostly, struct pbuf and its payload are allocated in one piece of contiguous memory (so the first payload byte can be calculated from struct pbuf). pbuf_alloc() allocates PBUF_RAM pbufs as unchained pbufs (although that might change in future versions). This should be used for all OUTGOING packets (TX).

pbuf comes from the pbuf pool. Much like PBUF_ROM but payload might change so it has to be duplicated when queued before transmitting, depending on who has a ‘ref’ to it.

pbuf data is stored in ROM, i.e. struct pbuf and its payload are located in totally different memory areas. Since it points to ROM, payload does not have to be copied when queued for transmission.

< interrupt of AES accelerator, level

< interrupt of APB ADC, LEVEL

< interrupt of Assist debug module, LEVEL

< interrupt of BT BB, level

< interrupt of BT BB, NMI, use if BB have bug to fix in NMI

< interrupt of Cache Invalied Access, LEVEL

< interrupt of general DMA channel 0, LEVEL

< interrupt of general DMA channel 1, LEVEL

< interrupt of general DMA channel 2, LEVEL

< interrupt of efuse, level, not likely to use

< interrupt0 generated from a CPU, level

< interrupt1 generated from a CPU, level

< interrupt2 generated from a CPU, level

< interrupt3 generated from a CPU, level

< interrupt of GPIO, level

< interrupt of I2C controller1, level

< interrupt of I2C Master, level

< interrupt of I2S1, level

< interrupt of ICache perload operation, LEVEL

< interrupt of instruction cache sync done, LEVEL

< interrupt of LED PWM, level

< interrupt of remote controller, level

< interrupt of RSA accelerator, level

< interrupt of rtc core, level, include rtc watchdog

< interrupt of RWBLE, level

< interrupt of RWBLE, NMI, use if RWBT have bug to fix in NMI

< interrupt of RWBT, level

< interrupt of RWBT, NMI, use if RWBT have bug to fix in NMI

< interrupt of SHA accelerator, level

< interrupt of SLC0, level

< interrupt of SLC1, level

< interrupt of SPI1, level, SPI1 is for flash read/write, do not use this

< interrupt of SPI2, level

< interrupt of SPI0 Cache access and SPI1 access rejected, LEVEL

< interrupt of TIMER_GROUP0, TIMER0, level

< interrupt of TIMER_GROUP0, WATCH DOG, level

< interrupt of TIMER_GROUP1, TIMER0, level

< interrupt of TIMER_GROUP1, WATCHDOG, level

< interrupt of can, level

< interrupt of UART0, level

< interrupt of UART1, level

< interrupt of UHCI0, level

< interrupt of USB, level

< interrupt of WiFi BB, level, we can do some calibartion

< interrupt of WiFi MAC, level

< interrupt of WiFi MAC, NMI, use if MAC have bug to fix in NMI

< RMT carrier wave is modulated for high Level output

< RMT carrier wave is modulated for low Level output

< RMT channel status busy

< RMT channel status idle

< RMT channel uninitialized

< RMT channel number 0

< RMT channel number 1

< RMT channel number 2

< RMT channel number 3

< Number of RMT channels

< RMT TX idle level: high Level

< RMT TX idle level: low Level

< RMT RX mode, RMT receiver owns the memory block

< RMT RX mode, RMT transmitter owns the memory block

< RMT source clock is APB CLK, 80Mhz by default

< RMT source clock is XTAL clock, 40Mhz by default

!< Internal 8 MHz RC oscillator, divided by 256

!< External 32 kHz XTAL

!< Currently selected RTC SLOW_CLK

!< Internal 8M RTC oscillator

!< Main XTAL frequency

!< Internal 8 MHz RC oscillator

!< Main XTAL, divided by 4

< Pad (output + input) disable

< Pad input + open-drain output

!< Internal 8 MHz RC oscillator, divided by 256

!< Internal 150 kHz RC oscillator

< Update system time immediately when receiving a response from the SNTP server.

< Smooth time updating. Time error is gradually reduced using adjtime function. If the difference between SNTP response time and system time is large (more than 35 minutes) then update immediately.

< Enable DMA, channel is automatically selected by driver

< Do not enable DMA for SPI

< The buffer has received data from master.

< The buffer has sent data to master.

< Received CMD9 from master.

< Received CMDA from master.

< Slave has received certain number of data from master, the number is determined by Master.

< Slave has loaded its RX data buffer to the hardware (DMA).

< Master has received certain number of the data, the number is determined by Master.

< Slave has loaded its TX data buffer to the hardware (DMA).

< A transaction has done

< map to data memory (Vaddr0), allows byte-aligned access, 4 MB total

< map to instruction memory (Vaddr1-3), allows only 4-byte-aligned access, 11 MB total

< Receive status of Action frame transmitted

< Receive probe request packet in soft-AP interface

< a station connected to ESP32 soft-AP

< a station disconnected from ESP32 soft-AP

< ESP32 soft-AP assign an IP to a connected station

< ESP32 ethernet got IP from connected AP

< Receive report of FTM procedure

< ESP32 station or ap or ethernet interface v6IP addr is preferred

< Number of members in this enum

< Indicates the completion of Remain-on-Channel operation status

< ESP32 finish scanning AP

< the auth mode of AP connected by ESP32 station changed

< ESP32 station connected BSS rssi goes below threshold

< ESP32 station connected to AP

< ESP32 station disconnected from AP

< ESP32 station got IP from connected AP

< ESP32 station lost IP and the IP is reset to 0

< ESP32 station wps fails in enrollee mode

< ESP32 station wps overlap in enrollee mode

< ESP32 station wps pin code in enrollee mode

< ESP32 station wps succeeds in enrollee mode

< ESP32 station wps timeout in enrollee mode

< Wi-Fi soft-AP interface

< Wi-Fi STA (station) interface

< tcpip stack test interface

< Disable timer alarm

< Enable timer alarm

< Disable auto-reload: hardware will not load counter value after an alarm event

< Enable auto-reload: hardware will load counter value after an alarm event

< Descending Count from cnt.high|cnt.low

< Ascending Count from Zero

<Hw timer group 0

<Hw timer group 1

<Select timer0 of GROUPx

< Interrupt mode: level mode

< interrupt of timer 0

< interrupt of watchdog

< Select APB as the source clock

< Select XTAL as the source clock

<Pause timer counter

<Start timer counter

<Touch sensor charge / discharge speed, always zero

<Touch sensor charge / discharge speed, slowest

<Touch sensor charge / discharge speed

<Touch sensor charge / discharge speed

<Touch sensor charge / discharge speed

<Touch sensor charge / discharge speed

<Touch sensor charge / discharge speed

<Touch sensor charge / discharge speed, fast

<The filter mode is first-order IIR filter. The coefficient is 4.

<The filter mode is first-order IIR filter. The coefficient is 8.

<The filter mode is first-order IIR filter. The coefficient is 16 (Typical value).

<The filter mode is first-order IIR filter. The coefficient is 32.

<The filter mode is first-order IIR filter. The coefficient is 64.

<The filter mode is first-order IIR filter. The coefficient is 128.

<The filter mode is first-order IIR filter. The coefficient is 256.

<The filter mode is jitter filter

<To start touch FSM by software trigger

<To start touch FSM by timer

<Touch sensor high reference voltage, 2.4V

<Touch sensor high reference voltage, 2.5V

<Touch sensor high reference voltage, 2.6V

<Touch sensor high reference voltage, 2.7V

<Touch sensor high reference voltage, no change

<Touch sensor low reference voltage, 0.5V

<Touch sensor low reference voltage, 0.6V

<Touch sensor low reference voltage, 0.7V

<Touch sensor low reference voltage, 0.8V

<Touch sensor low reference voltage, no change

<Idle status of touch channel is ground connection

<Idle status of touch channel is high resistance state

<Denoise channel internal reference capacitance is 5pf

<Denoise channel internal reference capacitance is 6.4pf

<Denoise channel internal reference capacitance is 7.8pf

<Denoise channel internal reference capacitance is 9.2pf

<Denoise channel internal reference capacitance is 10.6pf

<Denoise channel internal reference capacitance is 12.0pf

<Denoise channel internal reference capacitance is 13.4pf

<Denoise channel internal reference capacitance is 14.8pf

<Active for one of the enabled channels.

<Measurement done for one of the enabled channels.

<Inactive for one of the enabled channels.

<Measurement done for all the enabled channels.

<Timeout for one of the enabled channels.

<The max equivalent capacitance in shield channel is 40pf

<The max equivalent capacitance in shield channel is 80pf

<The max equivalent capacitance in shield channel is 120pf

<The max equivalent capacitance in shield channel is 160pf

<The max equivalent capacitance in shield channel is 200pf

<The max equivalent capacitance in shield channel is 240pf

<The max equivalent capacitance in shield channel is 280pf

<The max equivalent capacitance in shield channel is 320pf

< Touch pad channel 0 is GPIO4(ESP32)

< Touch pad channel 1 is GPIO0(ESP32) / GPIO1(ESP32-S2)

< Touch pad channel 2 is GPIO2(ESP32) / GPIO2(ESP32-S2)

< Touch pad channel 3 is GPIO15(ESP32) / GPIO3(ESP32-S2)

< Touch pad channel 4 is GPIO13(ESP32) / GPIO4(ESP32-S2)

< Touch pad channel 5 is GPIO12(ESP32) / GPIO5(ESP32-S2)

< Touch pad channel 6 is GPIO14(ESP32) / GPIO6(ESP32-S2)

< Touch pad channel 7 is GPIO27(ESP32) / GPIO7(ESP32-S2)

< Touch pad channel 8 is GPIO33(ESP32) / GPIO8(ESP32-S2)

< Touch pad channel 9 is GPIO32(ESP32) / GPIO9(ESP32-S2)

<Filter the raw data. The coefficient is 2 (Typical value).

<Filter the raw data. The coefficient is 4.

<Filter the raw data. The coefficient is 8.

<No filtering of raw data.

<Initial level of charging voltage, high level

<Initial level of charging voltage, low level

<Touch interrupt will happen if counter value is larger than threshold.

<Touch interrupt will happen if counter value is less than threshold.

< wakeup interrupt is generated if both SET1 and SET2 are “touched”

< wakeup interrupt is generated if SET1 is “touched”

<Touch sensor high reference voltage attenuation, 0V attenuation

<Touch sensor high reference voltage attenuation, 0.5V attenuation

<Touch sensor high reference voltage attenuation, 1.0V attenuation

<Touch sensor high reference voltage attenuation, 1.5V attenuation

<Touch sensor high reference voltage attenuation, no change

< The TWAI controller will not influence the bus (No transmissions or acknowledgments) but can receive messages

< Normal operating mode where TWAI controller can send/receive/acknowledge messages

< Transmission does not require acknowledgment. Use this mode for self testing

< Bus-off state. The TWAI controller cannot participate in bus activities until it has recovered

< Recovering state. The TWAI controller is undergoing bus recovery

< Running state. The TWAI controller can transmit and receive messages

< Stopped state. The TWAI controller will not participate in any TWAI bus activities

< UART break event

< UART RX buffer full event

< UART data event

< UART TX data and break event

< UART event max index

< UART FIFO overflow event

< UART RX frame error event

< UART RX parity event

< UART pattern detected

< enable TX hardware flow control (cts)

< enable hardware flow control

< disable hardware flow control

< enable RX hardware flow control (rts)

< mode: IRDA UART mode

< mode: application control RS485 UART mode (used for test purposes)

< mode: RS485 collision detection UART mode (used for test purposes)

< mode: half duplex RS485 UART mode control by RTS pin

< mode: regular UART mode

< Disable UART parity

< Enable UART even parity

< Enable UART odd parity

< UART source clock from APB

< UART source clock from RTC

< UART source clock from XTAL

< inverse the UART cts signal

< inverse the UART dsr signal

< inverse the UART dtr signal

< Disable UART signal inverse

< inverse the UART irda_rx signal

< inverse the UART irda_tx signal

< inverse the UART rts signal

< inverse the UART rxd signal

< inverse the UART txd signal

< Enable WiFi antenna 0 only

< Enable WiFi antenna 1 only

< Enable WiFi antenna 0 and 1, automatically select an antenna

< Invalid WiFi enabled antenna

< WiFi antenna 0

< WiFi antenna 1

< Invalid WiFi antenna

< authenticate mode : open

< authenticate mode : WAPI_PSK

< authenticate mode : WEP

< authenticate mode : WPA2_ENTERPRISE

< authenticate mode : WPA2_PSK

< authenticate mode : WPA2_WPA3_PSK

< authenticate mode : WPA3_PSK

< authenticate mode : WPA_PSK

< authenticate mode : WPA_WPA2_PSK

< the cipher type is AES-CMAC-128

< the cipher type is TKIP and CCMP

< the cipher type is unknown

< the cipher type is WEP104

< Country policy is auto, use the country info of AP to which the station is connected

< Country policy is manual, always use the configured country info

< Status indication of Action Tx operation

< Receive probe request packet in soft-AP interface

< a station connected to ESP32 soft-AP

< a station disconnected from ESP32 soft-AP

< ESP32 soft-AP start

< ESP32 soft-AP stop

< Receive report of FTM procedure

< Invalid WiFi event ID

< Remain-on-Channel operation complete

< ESP32 finish scanning AP

< the auth mode of AP connected by ESP32 station changed

< ESP32 station beacon timeout

< AP’s RSSI crossed configured threshold

< ESP32 station connected to AP

< ESP32 station disconnected from AP

< ESP32 station start

< ESP32 station wps fails in enrollee mode

< ESP32 station wps overlap in enrollee mode

< ESP32 station wps pin code in enrollee mode

< ESP32 station wps succeeds in enrollee mode

< ESP32 station wps timeout in enrollee mode

< Peer rejected FTM configuration in FTM Request

< Unknown error during FTM exchange

< Peer did not respond to FTM Requests

< FTM exchange is successful

< Peer does not support FTM

< WiFi soft-AP mode

< WiFi station + soft-AP mode

< WiFi station mode

< 1 Mbps with long preamble

< 2 Mbps with long preamble

< 2 Mbps with short preamble

< 5.5 Mbps with long preamble

< 5.5 Mbps with short preamble

< 11 Mbps with long preamble

< 11 Mbps with short preamble

< MCS0 with long GI, 6.5 Mbps for 20MHz, 13.5 Mbps for 40MHz

< MCS0 with short GI, 7.2 Mbps for 20MHz, 15 Mbps for 40MHz

< MCS1 with long GI, 13 Mbps for 20MHz, 27 Mbps for 40MHz

< MCS1 with short GI, 14.4 Mbps for 20MHz, 30 Mbps for 40MHz

< MCS2 with long GI, 19.5 Mbps for 20MHz, 40.5 Mbps for 40MHz

< MCS2 with short GI, 21.7 Mbps for 20MHz, 45 Mbps for 40MHz

< MCS3 with long GI, 26 Mbps for 20MHz, 54 Mbps for 40MHz

< MCS3 with short GI, 28.9 Mbps for 20MHz, 60 Mbps for 40MHz

< MCS4 with long GI, 39 Mbps for 20MHz, 81 Mbps for 40MHz

< MCS4 with short GI, 43.3 Mbps for 20MHz, 90 Mbps for 40MHz

< MCS5 with long GI, 52 Mbps for 20MHz, 108 Mbps for 40MHz

< MCS5 with short GI, 57.8 Mbps for 20MHz, 120 Mbps for 40MHz

< MCS6 with long GI, 58.5 Mbps for 20MHz, 121.5 Mbps for 40MHz

< MCS6 with short GI, 65 Mbps for 20MHz, 135 Mbps for 40MHz

< MCS7 with long GI, 65 Mbps for 20MHz, 135 Mbps for 40MHz

< MCS7 with short GI, 72.2 Mbps for 20MHz, 150 Mbps for 40MHz

< Control frame, indicates ‘buf’ argument is wifi_promiscuous_pkt_t

< Data frame, indiciates ‘buf’ argument is wifi_promiscuous_pkt_t

< Management frame, indicates ‘buf’ argument is wifi_promiscuous_pkt_t

< Other type, such as MIMO etc. ‘buf’ argument is wifi_promiscuous_pkt_t but the payload is zero length.

< Maximum modem power saving. In this mode, interval to receive beacons is determined by the listen_interval parameter in wifi_sta_config_t

< Minimum modem power saving. In this mode, station wakes up to receive beacon every DTIM period

< All channel scan, scan will end after scan all the channel

< Do fast scan, scan will end after find SSID match AP

< the channel width is HT40 and the secondary channel is above the primary channel

< the channel width is HT40 and the secondary channel is below the primary channel

< the channel width is HT20

< Sort match AP in scan list by security mode

< Sort match AP in scan list by RSSI

< all configuration will store in both memory and flash

< all configuration will only store in the memory

Statics

@brief Pointer to the “default” SPI flash chip, ie the main chip attached to the MCU.

@addtogroup ets_apis @{

@brief Default OS-aware flash access guard functions

@brief Non-OS flash access guard functions

This variable is initialized by the system to contain the wildcard IPv6 address.

Default security profile. Should provide a good balance between security and compatibility with current deployments.

Expected next default profile. Recommended for new deployments. Currently targets a 128-bit security level, except for allowing RSA-2048.

NSA Suite B profile.

The default network interface.

The list of network interfaces.

Functions

@brief Set the attenuation of a particular channel on ADC1, and configure its associated GPIO pin mux.

@brief Configure ADC1 capture width, meanwhile enable output invert for ADC1. The configuration is for all channels of ADC1 @param width_bit Bit capture width for ADC1

@brief Take an ADC1 reading from a single channel. @note ESP32: When the power switch of SARADC1, SARADC2, HALL sensor and AMP sensor is turned on, the input of GPIO36 and GPIO39 will be pulled down for about 80ns. When enabling power for any of these peripherals, ignore input from GPIO36 and GPIO39. Please refer to section 3.11 of ‘ECO_and_Workarounds_for_Bugs_in_ESP32’ for the description of this issue. As a workaround, call adc_power_acquire() in the app. This will result in higher power consumption (by ~1mA), but will remove the glitches on GPIO36 and GPIO39.

@brief Get the GPIO number of a specific ADC1 channel.

@brief Configure the ADC2 channel, including setting attenuation.

@brief Take an ADC2 reading on a single channel

@brief Get the GPIO number of a specific ADC2 channel.

@brief Output ADC2 reference voltage to adc2_channe_t’s IO.

@brief Setting the digital controller.

@brief Deinitialize the Digital ADC.

@brief Enable/disable adc digital controller filter. Filtering the ADC data to obtain smooth data at higher sampling rates.

@brief Get adc digital controller filter configuration.

@brief Reset adc digital controller filter.

@brief Set adc digital controller filter configuration.

@brief Initialize the Digital ADC.

@brief Enable/disable monitor of adc digital controller.

@brief Config monitor of adc digital controller.

@brief Read bytes from Digital ADC through DMA.

@brief Start the Digital ADC and DMA peripherals. After this, the hardware starts working.

@brief Stop the Digital ADC and DMA peripherals. After this, the hardware stops working.

@brief Increment the usage counter for ADC module. ADC will stay powered on while the counter is greater than 0. Call adc_power_release when done using the ADC.

@brief Power off SAR ADC @deprecated Use adc_power_acquire and adc_power_release instead. This function will force power down for ADC. This function is deprecated because forcing power ADC power off may disrupt operation of other components which may be using the ADC.

@brief Enable ADC power @deprecated Use adc_power_acquire and adc_power_release instead.

@brief Decrement the usage counter for ADC module. ADC will stay powered on while the counter is greater than 0. Call this function when done using the ADC.

@brief Output ADC1 or ADC2’s reference voltage to adc2_channe_t’s IO.

@brief Verify and load an app image (available only in space of bootloader).

@brief Load an app image without verification (available only in space of bootloader).

@brief Extracts the input baud rate from the input structure exactly (without interpretation).

@brief Extracts the output baud rate from the input structure exactly (without interpretation).

@brief Set input baud rate in the termios structure

@brief Set output baud rate in the termios structure

Clear and disable breakpoint.

Clear and disable watchpoint.

Set and enable breakpoint at an instruction address.

Set exception vector table base address.

Set and enable a watchpoint, specifying the memory range and trigger operation.

Obtain the state of any task.

@brief Characterize an ADC at a particular attenuation

@brief Checks if ADC calibration values are burned into eFuse

@brief Reads an ADC and converts the reading to a voltage in mV

@brief Convert an ADC reading to voltage in mV

\brief Lock access to AES hardware unit

\brief AES-CBC buffer encryption/decryption Length should be a multiple of the block size (16 bytes)

\brief AES-CFB8 buffer encryption/decryption.

\brief AES-CFB128 buffer encryption/decryption.

\brief AES-CTR buffer encryption/decryption

\brief AES-ECB block encryption/decryption

\brief This function performs an AES-OFB (Output Feedback Mode) encryption or decryption operation.

AES-XTS buffer encryption/decryption

Deprecated, see esp_aes_internal_decrypt

Deprecated, see esp_aes_internal_encrypt

\brief Clear AES context

\brief Initialize AES context

\brief Unlock access to AES hardware unit

\brief AES set key schedule (encryption or decryption)

\brief This function releases and clears the specified AES XTS context.

\brief This function initializes the specified AES XTS context.

\brief This function prepares an XTS context for decryption and sets the decryption key.

\brief This function prepares an XTS context for encryption and sets the encryption key.

Get the next frame on a stack for backtracing

Get the first frame of the current stack’s backtrace

@brief Print the backtrace of the current stack

@brief Return base MAC address which is set using esp_base_mac_addr_set.

@brief Set base MAC address with the MAC address which is stored in BLK3 of EFUSE or external storage e.g. flash and EEPROM.

@brief Fill an esp_chip_info_t structure with information about the chip @param[out] out_info structure to be filled

@brief Clear a watchpoint

@brief Check integrity of coredump data in flash. This function reads the coredump data while calculating their checksum. If it doesn’t match the checksum written on flash, it means data are corrupted, an error will be returned. Else, ESP_OK is returned.

@brief Erases coredump data in flash. esp_core_dump_image_get() will then return ESP_ERR_NOT_FOUND. Can be used after a coredump has been transmitted successfully. This function is always available, even when core dump is disabled in menuconfig.

@brief Retrieves address and size of coredump data in flash. This function is always available, even when core dump is disabled in menuconfig.

@brief Initializes core dump module internal data.

@brief Saves core dump to flash.

@brief Print base64-encoded core dump to UART.

@brief Configure CPU to disable access to invalid memory regions

@brief Returns true if a JTAG debugger is attached to CPU OCD (on chip debug) port.

@brief Reset CPU using RTC controller @param cpu_id ID of the CPU to reset (0 = PRO, 1 = APP)

@brief Stall CPU using RTC controller @param cpu_id ID of the CPU to stall (0 = PRO, 1 = APP)

@brief Un-stall CPU using RTC controller @param cpu_id ID of the CPU to un-stall (0 = PRO, 1 = APP)

@brief Attach and enable use of a bundle for certificate verification

@brief Disable and dealloc the certification bundle

@brief Set the default certificate bundle used for verification

@brief Enter deep-sleep mode

@brief Disable logging from the ROM code after deep sleep.

@brief Enable wakeup using specific gpio pins

@brief Enter deep sleep with the configured wakeup options

@brief The default esp-idf-provided esp_wake_deep_sleep() stub.

@brief Derive local MAC address from universal MAC address.

@brief Return base MAC address which was previously written to BLK3 of EFUSE.

@brief Return base MAC address which is factory-programmed by Espressif in BLK0 of EFUSE.

@brief Returns string for esp_err_t error codes

@brief Returns string for esp_err_t and system error codes

@brief Unregister default IP layer handlers for Ethernet

@brief Decrease Ethernet driver reference

@brief Delete netif glue of Ethernet driver

@brief Detect PHY address

@brief Install Ethernet driver

@brief Uninstall Ethernet driver @note It’s not recommended to uninstall Ethernet driver unless it won’t get used any more in application code. To uninstall Ethernet driver, you have to make sure, all references to the driver are released. Ethernet driver can only be uninstalled successfully when reference counter equals to one.

@brief Increase Ethernet driver reference @note Ethernet driver handle can be obtained by os timer, netif, etc. It’s dangerous when thread A is using Ethernet but thread B uninstall the driver. Using reference counter can prevent such risk, but care should be taken, when you obtain Ethernet driver, this API must be invoked so that the driver won’t be uninstalled during your using time.

@brief Misc IO function of Etherent driver

@brief Create a netif glue for Ethernet driver @note netif glue is used to attach io driver to TCP/IP netif

@brief Create a PHY instance of DP83848

@brief Create a PHY instance of IP101

@brief Create a PHY instance of KSZ8041

@brief Create a PHY instance of LAN8720

@brief Create a PHY instance of RTL8201

@brief General Receive is deprecated and shall not be accessed from app code, as polling is not supported by Ethernet.

@brief Register default IP layer handlers for Ethernet

@brief Start Ethernet driver ONLY in standalone mode (i.e. without TCP/IP stack)

@brief Stop Ethernet driver

@brief General Transmit

@brief Update Ethernet data input path (i.e. specify where to pass the input buffer)

@brief Dumps statistics of all event loops.

@brief Register an instance of event handler to the default loop.

@brief Register an instance of event handler to a specific loop.

@brief Unregister a handler from the system event loop.

@brief Unregister a handler instance from a specific event loop.

@brief Register an event handler to the system event loop (legacy).

@brief Register an event handler to a specific loop (legacy).

@brief Unregister a handler with the system event loop (legacy).

@brief Unregister a handler from a specific event loop (legacy).

@brief Special variant of esp_event_post for posting events from interrupt handlers.

@brief Special variant of esp_event_post_to for posting events from interrupt handlers

@brief Create a new event loop.

@brief Create default event loop

@brief Delete an existing event loop.

@brief Delete the default event loop

@brief Initialize event loop

@brief Dispatch events posted to an event loop.

@brief Set application specified event callback function

@brief Posts an event to the system default event loop. The event loop library keeps a copy of event_data and manages the copy’s lifetime automatically (allocation + deletion); this ensures that the data the handler recieves is always valid.

@brief Posts an event to the specified event loop. The event loop library keeps a copy of event_data and manages the copy’s lifetime automatically (allocation + deletion); this ensures that the data the handler recieves is always valid.

@brief Default event handler for system events

@brief Send a event to event task

@brief Send a event to event task

@brief Install default event handlers for Ethernet interface

@brief Install default event handlers for Wi-Fi interfaces (station and AP)

@brief Fill a buffer with random bytes from hardware RNG

Check if appropriate chip driver is set.

@brief Erase flash chip contents

@brief Erase a region of the flash chip

@brief Read if the entire chip is write protected

@brief Read the list of individually protectable regions of this SPI flash chip.

@brief Detect if a region of the SPI flash chip is protected

@brief Detect flash size based on flash ID.

@brief Initialise SPI flash chip interface.

@brief Read data from the SPI flash chip

@brief Read and decrypt data from the SPI flash chip using on-chip hardware flash encryption

@brief Read flash ID via the common “RDID” SPI flash command.

@brief Set write protection for the SPI flash chip

@brief Update the protected status for a region of the SPI flash chip

@brief Write data to the SPI flash chip

@brief Encrypted and write data to the SPI flash chip using on-chip hardware flash encryption

@brief Get current wake from deep sleep stub @return Return current wake from deep sleep stub, or NULL if no stub is installed.

@brief Get the size of available heap.

@brief Get the size of available internal heap.

Return full IDF version string, same as ‘git describe’ output.

@brief Get the minimum heap that has ever been available

@brief On receiving HTTP Status code 401, this API can be invoked to add authorization information.

@brief This function must be the last function to call for an session. It is the opposite of the esp_http_client_init function and must be called with the same handle as input that a esp_http_client_init call returned. This might close all connections this handle has used and possibly has kept open until now. Don’t call this function if you intend to transfer more files, re-using handles is a key to good performance with esp_http_client.

@brief Close http connection, still kept all http request resources

@brief Delete http request header

@brief This function need to call after esp_http_client_open, it will read from http stream, process all receive headers

@brief Process all remaining response data This uses an internal buffer to repeatedly receive, parse, and discard response data until complete data is processed. As no additional user-supplied buffer is required, this may be preferrable to esp_http_client_read_response in situations where the content of the response may be ignored.

@brief Get Chunk-Length from client

@brief Get http response content length (from header Content-Length) the valid value if this function invoke after esp_http_client_perform

@brief Get http request header. The value parameter will be set to NULL if there is no header which is same as the key specified, otherwise the address of header value will be assigned to value parameter. This function must be called after esp_http_client_init.

@brief Get http request password. The address of password buffer will be assigned to value parameter. This function must be called after esp_http_client_init.

@brief Get current post field information

@brief Get http response status code, the valid value if this function invoke after esp_http_client_perform

@brief Get transport type

@brief Get URL from client

@brief Get http request username. The address of username buffer will be assigned to value parameter. This function must be called after esp_http_client_init.

@brief Start a HTTP session This function must be the first function to call, and it returns a esp_http_client_handle_t that you must use as input to other functions in the interface. This call MUST have a corresponding call to esp_http_client_cleanup when the operation is complete.

@brief Check response data is chunked

@brief Checks if entire data in the response has been read without any error.

@brief This function will be open the connection, write all header strings and return

@brief Invoke this function after esp_http_client_init and all the options calls are made, and will perform the transfer as described in the options. It must be called with the same esp_http_client_handle_t as input as the esp_http_client_init call returned. esp_http_client_perform performs the entire request in either blocking or non-blocking manner. By default, the API performs request in a blocking manner and returns when done, or if it failed, and in non-blocking manner, it returns if EAGAIN/EWOULDBLOCK or EINPROGRESS is encountered, or if it failed. And in case of non-blocking request, the user may call this API multiple times unless request & response is complete or there is a failure. To enable non-blocking esp_http_client_perform(), is_async member of esp_http_client_config_t must be set while making a call to esp_http_client_init() API. You can do any amount of calls to esp_http_client_perform while using the same esp_http_client_handle_t. The underlying connection may be kept open if the server allows it. If you intend to transfer more than one file, you are even encouraged to do so. esp_http_client will then attempt to re-use the same connection for the following transfers, thus making the operations faster, less CPU intense and using less network resources. Just note that you will have to use esp_http_client_set_** between the invokes to set options for the following esp_http_client_perform.

@brief Read data from http stream

@brief Helper API to read larger data chunks This is a helper API which internally calls esp_http_client_read multiple times till the end of data is reached or till the buffer gets full.

@brief Set http request auth_type.

@brief Set http request header, this function must be called after esp_http_client_init and before any perform function

@brief Set http request method

@brief Set http request password. The value of password parameter will be assigned to password buffer. If the password parameter is NULL then password buffer will be freed.

@brief Set post data, this function must be called before esp_http_client_perform. Note: The data parameter passed to this function is a pointer and this function will not copy the data

@brief Set redirection URL. When received the 30x code from the server, the client stores the redirect URL provided by the server. This function will set the current URL to redirect to enable client to execute the redirection request.

@brief Set URL for client, when performing this behavior, the options in the URL will replace the old ones

@brief Set http request username. The value of username parameter will be assigned to username buffer. If the username parameter is NULL then username buffer will be freed.

@brief This function will write data to the HTTP connection previously opened by esp_http_client_open()

@brief Get the flash size of the image

@brief Get metadata of app

@brief Verify an app image.

@brief Verify the bootloader image.

@brief Verify the bootloader image.

@brief Enable the interrupt watchdog on the current CPU. This is called in the init code by both CPUs if the interrupt watchdog is enabled in menuconfig.

@brief Initialize the non-CPU-specific parts of interrupt watchdog. This is called in the init code if the interrupt watchdog is enabled in menuconfig.

\brief Internal AES block decryption function (Only exposed to allow overriding it, see AES_DECRYPT_ALT)

\brief Internal AES block encryption function (Only exposed to allow overriding it, see AES_ENCRYPT_ALT)

@brief Allocate an interrupt with the given parameters.

@brief Allocate an interrupt with the given parameters.

@brief Disable the interrupt associated with the handle

@brief disable the interrupt source based on its number @param inum interrupt number from 0 to 31

@brief Enable the interrupt associated with the handle

@brief enable the interrupt source based on its number @param inum interrupt number from 0 to 31

@brief Disable and free an interrupt.

@brief Get CPU number an interrupt is tied to

@brief Get the allocated interrupt for a certain handle

@brief Mark an interrupt as a shared interrupt

@brief Disable interrupts that aren’t specifically marked as running from IRAM

@brief Re-enable interrupts disabled by esp_intr_noniram_disable

@brief Reserve an interrupt to be used outside of this framework

@brief Set the “in IRAM” status of the handler.

@brief Ascii internet address interpretation routine The value returned is in network order.

@brief Converts numeric IP address into decimal dotted ASCII representation.

@brief Execute a function on the given CPU

@brief Execute a function on the given CPU and blocks until it completes

@brief Enter light sleep with the configured wakeup options

@brief Function which returns timestamp to be used in log output

@brief Set log level for given tag

@brief Set function used to output log entries

@brief Function which returns system timestamp to be used in log output

@brief Function which returns timestamp to be used in log output

@brief Write message into the log

@brief Destroys the client handle

@brief This api is typically used to force disconnection from the broker

@brief Enqueue a message to the outbox, to be sent later. Typically used for messages with qos>0, but could be also used for qos=0 messages if store=true.

@brief Get outbox size

@brief Creates mqtt client handle based on the configuration

@brief Client to send a publish message to the broker

@brief This api is typically used to force reconnection upon a specific event

@brief Registers mqtt event

@brief Sets mqtt connection URI. This API is usually used to overrides the URI configured in esp_mqtt_client_init

@brief Starts mqtt client with already created client handle

@brief Stops mqtt client tasks

@brief Subscribe the client to defined topic with defined qos

@brief Unsubscribe the client from defined topic

@brief Set configuration structure, typically used when updating the config (i.e. on “before_connect” event

@brief Default building block for network interface action upon IO driver connected event

@brief Default building block for network interface action upon IO driver disconnected event

@brief Default building block for network interface action upon network got IP event

@brief Default building block for network interface action upon IO driver start event Creates network interface, if AUTOUP enabled turns the interface on, if DHCPS enabled starts dhcp server

@brief Default building block for network interface action upon IO driver stop event

@brief Attaches esp_netif instance to the io driver handle

@brief Attaches wifi soft AP interface to supplied netif

@brief Attaches wifi station interface to supplied netif

@brief Creates default WIFI AP. In case of any init error this API aborts.

@brief Creates default STA and AP network interfaces for esp-mesh.

@brief Creates default WIFI STA. In case of any init error this API aborts.

@brief Create interface link-local IPv6 address

@brief Creates esp_netif WiFi object based on the custom configuration.

@brief Deinitialize the esp-netif component (and the underlying TCP/IP stack)

@brief Destroys the esp_netif object

@brief Get DHCP client status

@brief Set or Get DHCP client option

@brief Start DHCP client (only if enabled in interface object)

@brief Stop DHCP client (only if enabled in interface object)

@brief Get DHCP Server status

@brief Set or Get DHCP server option

@brief Start DHCP server (only if enabled in interface object)

@brief Stop DHCP server (only if enabled in interface object)

@brief Get all IPv6 addresses of the specified interface

@brief Returns configured interface type for this esp-netif instance

@brief Get DNS Server information

@brief Returns configured event for this esp-netif instance and supplied event type

@brief Returns configured flags for this interface

@brief Searches over a list of created objects to find an instance with supplied if key

@brief Get interface hostname.

@brief Returns configured interface key for this esp-netif instance

@brief Gets media driver handle for this esp-netif instance

@brief Get interface global IPv6 address

@brief Get interface link-local IPv6 address

@brief Get interface’s IP address information

@brief Get the mac address for the interface instance

@brief Get net interface index from network stack implementation

@brief Get net interface name from network stack implementation

@brief Returns number of registered esp_netif objects

@brief Get interface’s old IP information

@brief Returns configured routing priority number

@brief Get IP information for stations connected to the Wi-Fi AP interface

@brief Initialize the underlying TCP/IP stack

@brief Get the IPv6 address type

@brief Test if supplied interface is up or down

@brief free the netstack buffer

@brief increase the reference counter of net stack buffer

@brief Creates an instance of new esp-netif object based on provided config

@brief Iterates over list of interfaces. Returns first netif if NULL given as parameter

@brief Passes the raw packets from communication media to the appropriate TCP/IP stack

@brief Set DNS Server information

@brief Configures driver related options of esp_netif object

@brief Set the hostname of an interface

@brief Sets IPv4 address to the specified octets

@brief Set interface’s IP address information

@brief Set the mac address for the interface instance

@brief Set interface old IP information

@brief Converts Ascii internet IPv4 address into esp_ip4_addr_t

@brief Converts Ascii internet IPv6 address into esp_ip4_addr_t Zeros in the IP address can be stripped or completely ommited: “2001:db8:85a3:0:0:0:2:1” or “2001:db8::2:1”)

Function which sets up newlib in ROM for use with ESP-IDF

Initialize newlib static locks

@brief Abort OTA update, free the handle and memory associated with it.

@brief Commence an OTA update writing to the specified partition.

@brief Checks applications on the slots which can be booted in case of rollback.

@brief Finish OTA update and validate newly written app image.

@brief Erase previous boot app partition and corresponding otadata select for this partition.

@brief Return esp_app_desc structure. This structure includes app version.

@brief Fill the provided buffer with SHA256 of the ELF file, formatted as hexadecimal, null-terminated. If the buffer size is not sufficient to fit the entire SHA256 in hex plus a null terminator, the largest possible number of bytes will be written followed by a null. @param dst Destination buffer @param size Size of the buffer @return Number of bytes written to dst (including null terminator)

@brief Get partition info of currently configured boot app

@brief Returns last partition with invalid state (ESP_OTA_IMG_INVALID or ESP_OTA_IMG_ABORTED).

@brief Return the next OTA app partition which should be written with a new firmware.

@brief Returns esp_app_desc structure for app partition. This structure includes app version.

@brief Get partition info of currently running app

@brief Returns state for given partition.

@brief This function is called to roll back to the previously workable app with reboot.

@brief This function is called to indicate that the running app is working well.

@brief Configure OTA data for a new boot partition

@brief Write OTA update data to partition

@brief Write OTA update data to partition

@brief Check for the identity of two partitions by SHA-256 digest.

@brief Deregister the partition previously registered using esp_partition_register_external @param partition pointer to the partition structure obtained from esp_partition_register_external, @return - ESP_OK on success - ESP_ERR_NOT_FOUND if the partition pointer is not found - ESP_ERR_INVALID_ARG if the partition comes from the partition table - ESP_ERR_INVALID_ARG if the partition was not registered using esp_partition_register_external function.

@brief Erase part of the partition

@brief Find partition based on one or more parameters

@brief Find first partition based on one or more parameters

@brief Get esp_partition_t structure for given partition

@brief Get SHA-256 digest for required partition.

@brief Release partition iterator

Check whether the region on the main flash is safe to write.

@brief Configure MMU to map partition into data memory

@brief Move partition iterator to the next partition found

@brief Read data from the partition

@brief Read data from the partition without any transformation/decryption.

@brief Register a partition on an external flash chip

@brief Verify partition data

@brief Write data to the partition

@brief Write data to the partition without any transformation/encryption.

@brief Delete a ping session

@brief Get runtime profile of ping session

@brief Create a ping session

@brief Start the ping session

@brief Stop the ping session

@brief Set implementation-specific power management configuration @param config pointer to implementation-specific configuration structure (e.g. esp_pm_config_esp32) @return - ESP_OK on success - ESP_ERR_INVALID_ARG if the configuration values are not correct - ESP_ERR_NOT_SUPPORTED if certain combination of values is not supported, or if CONFIG_PM_ENABLE is not enabled in sdkconfig

Dump the list of all locks to stderr

@brief Get implementation-specific power management configuration @param config pointer to implementation-specific configuration structure (e.g. esp_pm_config_esp32) @return - ESP_OK on success - ESP_ERR_INVALID_ARG if the pointer is null

@brief Take a power management lock

@brief Initialize a lock handle for certain power management parameter

@brief Delete a lock created using esp_pm_lock

@brief Release the lock taken using esp_pm_lock_acquire.

@brief Get current pthread creation configuration

@brief Creates a default pthread configuration based on the values set via menuconfig.

@brief Initialize pthread library

@brief Configure parameters for creating pthread

@brief Get one random 32-bit word from hardware RNG

@brief Read base MAC address and set MAC address of the interface.

Clean up some of lazily allocated buffers in REENT structures.

Replacement for newlib’s _REENT_INIT_PTR and __sinit.

@brief Register shutdown handler

@brief Get reason of last reset @return See description of esp_reset_reason_t for explanation of each value.

@brief Restart PRO and APP CPUs.

@brief Pauses execution for us microseconds

@brief Disable logging from the ROM code.

@brief esp_rom_printf can print message to different channels simultaneously. This function can help install the low level putc function for esp_rom_printf.

@brief Install UART1 as the default console channel, equivalent to esp_rom_install_channel_putc(1, esp_rom_uart_putc)

@brief Print formated string to console device @note float and long long data are not supported!

@brief If an OCD is connected over JTAG. set breakpoint 0 to the given function address. Do nothing otherwise. @param fn Pointer to the target breakpoint position

@brief Install a new stub at runtime to run on wake from deep sleep

Update current microsecond time from RTC

@brief Set a watchpoint to break/panic when a certain memory range is accessed.

@brief Configure to isolate all GPIO pins in sleep state

@brief Disable wakeup source

@brief Disable wakeup by WiFi MAC @return - ESP_OK on success

@brief Enable or disable GPIO pins status switching between slept status and waked status. @param enable decide whether to switch status or not

@brief Enable wakeup from light sleep using GPIOs

@brief Enable wakeup by timer @param time_in_us time before wakeup, in microseconds @return - ESP_OK on success - ESP_ERR_INVALID_ARG if value is out of range (TBD)

@brief Enable wakeup from light sleep using UART

@brief Enable wakeup by WiFi MAC @return - ESP_OK on success

@brief Get the bit mask of GPIOs which caused wakeup (ext1)

@brief Get the bit mask of GPIOs which caused wakeup (gpio)

@brief Get the wakeup source which caused wakeup from sleep

@brief Returns true if a GPIO number is valid for use as wakeup source.

@brief Set power down mode for an RTC power domain in sleep mode

Format the SPIFFS partition

Get information for SPIFFS

Check if SPIFFS is mounted

@brief Trigger a software abort

@brief Subscribe a task to the Task Watchdog Timer (TWDT)

@brief Deinitialize the Task Watchdog Timer (TWDT)

@brief Unsubscribes a task from the Task Watchdog Timer (TWDT)

@brief Initialize the Task Watchdog Timer (TWDT)

@brief Reset the Task Watchdog Timer (TWDT) on behalf of the currently running task

@brief Query whether a task is subscribed to the Task Watchdog Timer (TWDT)

@brief Create an esp_timer instance

@brief De-initialize esp_timer library

@brief Delete an esp_timer instance

@brief Dump the list of timers to a stream

@brief Minimal initialization of esp_timer

@brief Get the timestamp when the next timeout is expected to occur @return Timestamp of the nearest timer event, in microseconds. The timebase is the same as for the values returned by esp_timer_get_time.

@brief Get time in microseconds since boot @return number of microseconds since underlying timer has been started

@brief Initialize esp_timer library

@brief Returns status of a timer, active or not

@brief Start one-shot timer

@brief Start a periodic timer

@brief Stop the timer

@brief Compatible version of esp_tls_conn_destroy() to close the TLS/SSL connection

@brief Close the TLS/SSL connection and free any allocated resources.

@brief Create a new blocking TLS/SSL connection with a given “HTTP” url

@brief Create a new non-blocking TLS/SSL connection with a given “HTTP” url

@brief Create a new blocking TLS/SSL connection

@brief Create a new non-blocking TLS/SSL connection

@brief Create a new blocking TLS/SSL connection

@brief Free the global CA store currently being used.

@brief Returns the last error captured in esp_tls of a specific type The error information is cleared internally upon return

@brief Returns last error in esp_tls with detailed mbedtls related error codes. The error information is cleared internally upon return

@brief Return the number of application data bytes remaining to be read from the current record

@brief Returns the connection socket file descriptor from esp_tls session

@brief Get the pointer to the global CA store currently being used.

@brief Create TLS connection

@brief Create a global CA store, initially empty.

@brief Set the global CA store with the buffer provided in pem format.

@brief Unregister shutdown handler

@brief add /dev/cdcacm virtual filesystem driver

@brief Set the line endings expected to be received

@brief Set the line endings to sent

@brief Set the line endings expected to be received on specified UART

@brief Set the line endings to sent to specified UART

@brief add /dev/uart virtual filesystem driver

@brief Set the line endings expected to be received on UART

@brief Set the line endings to sent to UART

@brief set VFS to use UART driver for reading and writing @note application must configure UART driver before calling these functions With these functions, read and write are blocking and interrupt-driven. @param uart_num UART peripheral number

@brief set VFS to use simple functions for reading and writing UART Read is non-blocking, write is busy waiting until TX FIFO has enough space. These functions are used by default. @param uart_num UART peripheral number

@brief add /dev/usbserjtag virtual filesystem driver

@brief Set the line endings expected to be received

@brief Set the line endings to sent

@brief Convenience function to initialize read-only FAT filesystem and register it in VFS

@brief Unmount FAT filesystem and release resources acquired using esp_vfs_fat_rawflash_mount

@brief Register FATFS with VFS component

@brief Unmount an SD card from the FAT filesystem and release resources acquired using esp_vfs_fat_sdmmc_mount() or esp_vfs_fat_sdspi_mount()

@brief Convenience function to get FAT filesystem on SD card registered in VFS

@brief Unmount FAT filesystem and release resources acquired using esp_vfs_fat_sdmmc_mount

@brief Convenience function to get FAT filesystem on SD card registered in VFS

@brief Convenience function to initialize FAT filesystem in SPI flash and register it in VFS

@brief Unmount FAT filesystem and release resources acquired using esp_vfs_fat_spiflash_mount

@brief Un-register FATFS from VFS

@brief Implements the VFS layer of POSIX pread()

@brief Implements the VFS layer of POSIX pwrite()

Register a virtual filesystem for given path prefix.

Special function for registering another file descriptor for a VFS registered by esp_vfs_register_with_id.

Special case function for registering a VFS that uses a method other than open() to open new file descriptors from the interval <min_fd; max_fd).

Special case function for registering a VFS that uses a method other than open() to open new file descriptors. In comparison with esp_vfs_register_fd_range, this function doesn’t pre-registers an interval of file descriptors. File descriptors can be registered later, by using esp_vfs_register_fd.

@brief Synchronous I/O multiplexing which implements the functionality of POSIX select() for VFS @param nfds Specifies the range of descriptors which should be checked. The first nfds descriptors will be checked in each set. @param readfds If not NULL, then points to a descriptor set that on input specifies which descriptors should be checked for being ready to read, and on output indicates which descriptors are ready to read. @param writefds If not NULL, then points to a descriptor set that on input specifies which descriptors should be checked for being ready to write, and on output indicates which descriptors are ready to write. @param errorfds If not NULL, then points to a descriptor set that on input specifies which descriptors should be checked for error conditions, and on output indicates which descriptors have error conditions. @param timeout If not NULL, then points to timeval structure which specifies the time period after which the functions should time-out and return. If it is NULL, then the function will not time-out.

@brief Notification from a VFS driver about a read/write/error condition

@brief Notification from a VFS driver about a read/write/error condition (ISR version)

@brief add virtual filesystem semihosting driver

@brief Un-register semihosting driver from VFS

Register and mount SPIFFS to VFS with given path prefix.

Unregister and unmount SPIFFS from VFS

Unregister a virtual filesystem for given path prefix

Special function for unregistering a file descriptor belonging to a VFS registered by esp_vfs_register_with_id.

These functions are to be used in newlib syscall table. They will be called by newlib when it needs to use any of the syscalls.

@brief Default stub to run on wake from deep sleep.

@brief Send raw ieee80211 data

@brief Get AID of STA connected with soft-AP

@brief Get STAs associated with soft-AP

@brief Clears default wifi event handlers for supplied network interface

@brief Currently this API is just an stub API

@brief Enable or disable 11b rate of specified interface

@brief Config 80211 tx rate of specified interface

@brief Config ESPNOW rate of specified interface

@brief Connect the ESP32 WiFi station to the AP.

@brief Creates wifi driver instance to be used with esp-netif

@brief deauthenticate all stations or associated id equals to aid

@brief Deinit WiFi Free all resource allocated in esp_wifi_init and stop WiFi task

@brief Destroys wifi driver instance

@brief Disconnect the ESP32 WiFi station from the AP.

@brief End the ongoing FTM Initiator session

@brief Start an FTM Initiator session by sending FTM request If successful, event WIFI_EVENT_FTM_REPORT is generated with the result of the FTM procedure

@brief Set offset in cm for FTM Responder. An equivalent offset is calculated in picoseconds and added in TOD of FTM Measurement frame (T1).

@brief Get current antenna configuration

@brief Get current antenna GPIO configuration

@brief Get the bandwidth of ESP32 specified interface

@brief Get the primary/secondary channel of ESP32

@brief Get configuration of specified interface

@brief get the current country info

@brief get the current country code

@brief Get mask of WiFi events

@brief Return mac of specified wifi driver instance

@brief Get inactive time of specified interface

@brief Get mac of specified interface

@brief Get maximum transmiting power after WiFi start

@brief Get current operating mode of WiFi

@brief Get the promiscuous mode.

@brief Get the subtype filter of the control packet in promiscuous mode.

@brief Get the promiscuous filter.

@brief Get the current protocol bitmap of the specified interface

@brief Get current WiFi power save type

@brief Get the TSF time In Station mode or SoftAP+Station mode if station is not connected or station doesn’t receive at least one beacon after connected, will return 0

@brief Init WiFi Alloc resource for WiFi driver, such as WiFi control structure, RX/TX buffer, WiFi NVS structure etc, this WiFi also start WiFi task

@brief Return true if the supplied interface instance is ready after start. Typically used when registering on receive callback, which ought to be installed as soon as AP started, but once STA gets connected.

@brief Register interface receive callback function with argument

@brief Restore WiFi stack persistent settings to default values

@brief Get number of APs found in last scan

@brief Get AP list found in last scan

@brief Scan all available APs.

@brief Stop the scan in process

@brief Set antenna configuration

@brief Set antenna GPIO configuration

@brief Set the bandwidth of ESP32 specified interface

@brief Set primary/secondary channel of ESP32

@brief Set the configuration of the ESP32 STA or AP

@brief Set interval for station to wake up periodically at disconnected.

@brief configure country info

@brief configure country

@brief Enable or disable CSI

@brief Set CSI data configuration

@brief Register the RX callback function of CSI data.

@brief Sets default wifi event handlers for AP interface

@brief Sets default wifi event handlers for STA interface

@brief Set mask to enable or disable some WiFi events

@brief Set the inactive time of the ESP32 STA or AP

@brief Set MAC address of the ESP32 WiFi station or the soft-AP interface.

@brief Set maximum transmitting power after WiFi start.

@brief Set the WiFi operating mode

@brief Enable the promiscuous mode.

@brief Enable subtype filter of the control packet in promiscuous mode.

@brief Enable the promiscuous mode packet type filter.

@brief Register the RX callback function in the promiscuous mode.

@brief Set protocol type of specified interface The default protocol is (WIFI_PROTOCOL_11B|WIFI_PROTOCOL_11G|WIFI_PROTOCOL_11N)

@brief Set current WiFi power save type

@brief Set RSSI threshold below which APP will get an event

@brief Set the WiFi API configuration storage type

@brief Set 802.11 Vendor-Specific Information Element

@brief Register Vendor-Specific Information Element monitoring callback.

@brief Get information of AP which the ESP32 station is associated with

@brief Start WiFi according to current configuration If mode is WIFI_MODE_STA, it create station control block and start station If mode is WIFI_MODE_AP, it create soft-AP control block and start soft-AP If mode is WIFI_MODE_APSTA, it create soft-AP and station control block and start soft-AP and station

@brief Dump WiFi statistics

@brief Stop WiFi If mode is WIFI_MODE_STA, it stop station and free station control block If mode is WIFI_MODE_AP, it stop soft-AP and free soft-AP control block If mode is WIFI_MODE_APSTA, it stop station/soft-AP and free station/soft-AP control block

Clear interrupt bits of ESSL slave. All the bits set in the mask will be cleared, while other bits will stay the same.

Get interrupt bits of ESSL slave.

Get interrupt enable bits of ESSL slave.

Get a packet from ESSL slave.

Get the size, in bytes, of the data that the ESSL slave is ready to send

Get buffer num for the host to send data to the slave. The buffers are size of buffer_size.

@brief Initialize the slave.

Read general purpose R/W registers (8-bit) of ESSL slave.

Reset the counters of this component. Usually you don’t need to do this unless you know the slave is reset.

Clear interrupt bits of ESP32 slave. All the bits set in the mask will be cleared, while other bits will stay the same.

@brief Deinitialize and free the space used by the ESSL SDIO device.

Get interrupt bits of ESP32 slave.

Get interrupt enable bits of ESP32 slave.

Get a packet from ESP32 slave.

Get amount of data the ESP32 slave preparing to send to host.

Get buffer num for the host to send data to the slave. The buffers are size of buffer_size.

@cond */ SDIO Initialize process of a ESP32 slave device.

@brief Initialize the ESSL SDIO device and get its handle.

Read general purpose R/W registers (8-bit) of ESP32 slave.

@brief Reset the counter on the host side.

Send a packet to the ESP32 slave. The slave receive the packet into buffers whose size is buffer_size in the arg.

Send interrupts to slave. Each bit of the interrupt will be triggered.

Set interrupt enable bits of ESP32 slave. The slave only sends interrupt on the line when there is a bit both the raw status and the enable are set.

Wait for interrupt of a ESP32 slave device.

Wait for the interrupt from the SDIO slave.

Write general purpose R/W registers (8-bit) of ESP32 slave.

Send a packet to the ESSL Slave. The Slave receives the packet into buffers whose size is buffer_size (configured during initialization).

Send interrupts to slave. Each bit of the interrupt will be triggered.

Set interrupt enable bits of ESSL slave. The slave only sends interrupt on the line when there is a bit both the raw status and the enable are set.

Wait for interrupt of an ESSL slave device.

wait for an interrupt of the slave

Write general purpose R/W registers (8-bit) of ESSL slave.

@brief CPU do while loop for some time. In FreeRTOS task, please call FreeRTOS apis.

@brief Get apb_freq value, If value not stored in RTC_STORE5, than store.

@brief Get the real CPU ticks per us to the ets. This function do not return real CPU ticks per us, just the record in ets. It can be used to check with the real CPU frequency.

@brief Get the uart channel of ets_printf(uart_tx_one_char).

@brief Get the apb divior by xtal frequency. When any types of reset happen, the default value is 2.

@brief Get xtal_freq value, If value not stored in RTC_STORE5, than store.

@brief Ets_printf have two output functions: putc1 and putc2, both of which will be called if need ouput. To install putc1, which is defaulted installed as ets_write_char_uart in none silent boot mode, as NULL in silent mode.

@brief Ets_printf have two output functions: putc1 and putc2, both of which will be called if need ouput. To install putc2, which is defaulted installed as NULL.

@brief Install putc1 as ets_write_char_uart. In silent boot mode(to void interfere the UART attached MCU), we can call this function, after booting ok.

@brief Lock the interrupt to level 2. This function direct set the CPU registers. In FreeRTOS, please call FreeRTOS apis, never call this api.

@brief Unlock the interrupt to level 0. This function direct set the CPU registers. In FreeRTOS, please call FreeRTOS apis, never call this api.

@brief Attach a interrupt handler to a CPU interrupt number. This function equals to _xtos_set_interrupt_handler_arg(i, func, arg). In FreeRTOS, please call FreeRTOS apis, never call this api.

@brief Mask the interrupts which show in mask bits. This function equals to _xtos_ints_off(mask). In FreeRTOS, please call FreeRTOS apis, never call this api.

@brief Unmask the interrupts which show in mask bits. This function equals to _xtos_ints_on(mask). In FreeRTOS, please call FreeRTOS apis, never call this api.

@brief Post an event to an Task.

@brief Printf the strings to uart or other devices, similar with printf, simple than printf. Can not print float point data format, or longlong data format. So we maybe only use this in ROM.

@brief Start the Espressif Task Scheduler, which is an infinit loop. Please do not add code after it.

@brief Set App cpu Entry code, code can be called in PRO CPU. When APP booting is completed, APP CPU will call the Entry code if not NULL.

@brief Set the Idle callback, when Tasks are processed, will call the callback before CPU goto sleep.

@brief Set the uart channel of ets_printf(uart_tx_one_char). ROM will set it base on the efuse and gpio setting, however, this can be changed after booting.

@brief Set Pro cpu Startup code, code can be called when booting is not completed, or in Entry code. When Entry code completed, CPU will call the Startup code if not NULL, else call ets_run.

@brief Set Pro cpu Entry code, code can be called in PRO CPU when booting is not completed. When Pro CPU booting is completed, Pro CPU will call the Entry code if not NULL.

@brief Init a task with processer, priority, queue to receive Event, queue length.

@brief Arm an ets timer, this timer range is 640 us to 429496 ms. In FreeRTOS, please call FreeRTOS apis, never call this api.

@brief Arm an ets timer, this timer range is 640 us to 429496 ms. In FreeRTOS, please call FreeRTOS apis, never call this api.

@brief In FreeRTOS, please call FreeRTOS apis, never call this api.

@brief Disarm an ets timer. In FreeRTOS, please call FreeRTOS apis, never call this api.

@brief Unset timer callback and argument to NULL. In FreeRTOS, please call FreeRTOS apis, never call this api.

@brief Init ets timer, this timer range is 640 us to 429496 ms In FreeRTOS, please call FreeRTOS apis, never call this api.

@brief Set timer callback and argument. In FreeRTOS, please call FreeRTOS apis, never call this api.

@brief Set the real CPU ticks per us to the ets, so that ets_delay_us will be accurate. Call this function when CPU frequency is changed.

@brief Set the real CPU ticks per us to the ets, so that ets_delay_us will be accurate.

@brief Unlock the interrupt to level 0, and CPU will go into power save mode(wait interrupt). This function direct set the CPU registers. In FreeRTOS, please call FreeRTOS apis, never call this api.

@brief Output a char to uart, which uart to output(which is in uart module in ROM) is not in scope of the function. Can not print float point data format, or longlong data format

@brief GPIO common configuration

@brief Disable all digital gpio pad hold function during Deep-sleep.

@brief Enable all digital gpio pad hold function during Deep-sleep.

@brief Disable GPIO deep-sleep wake-up function.

@brief Enable GPIO deep-sleep wake-up function.

@brief Force hold digital and rtc gpio pad. @note GPIO force hold, whether the chip in sleep mode or wakeup mode.

@brief Force unhold digital and rtc gpio pad. @note GPIO force unhold, whether the chip in sleep mode or wakeup mode.

@brief Get GPIO pad drive capability

@brief GPIO get input level

@brief Disable gpio pad hold function.

@brief Enable gpio pad hold function.

@brief Initialize GPIO. This includes reading the GPIO Configuration DataSet to initialize “output enables” and pin configurations for each gpio pin. Please do not call this function in SDK.

@brief Sample the value of GPIO input pins(0-31) and returns a bitmask.

@brief Sample the value of GPIO input pins(32-39) and returns a bitmask.

@brief Install the driver’s GPIO ISR handler service, which allows per-pin GPIO interrupt handlers.

@brief Ack gpio interrupts to process pending interrupts. Please do not call this function in SDK.

@brief Ack gpio interrupts to process pending interrupts. Please do not call this function in SDK.

@brief Disable GPIO module interrupt signal

@brief Enable GPIO module interrupt signal

@brief Register an application-specific interrupt handler for GPIO pin interrupts. Once the interrupt handler is called, it will not be called again until after a call to gpio_intr_ack. Please do not call this function in SDK.

@brief Get gpio interrupts which happens but not processed. Please do not call this function in SDK.

@brief Get gpio interrupts which happens but not processed. Please do not call this function in SDK.

@brief Set pad input to a peripheral signal through the IOMUX. @param gpio_num GPIO number of the pad. @param signal_idx Peripheral signal id to input. One of the *_IN_IDX signals in soc/gpio_sig_map.h.

@brief Set peripheral output to an GPIO pad through the IOMUX. @param gpio_num gpio_num GPIO number of the pad. @param func The function number of the peripheral pin to output pin. One of the FUNC_X_* of specified pin (X) in soc/io_mux_reg.h. @param oen_inv True if the output enable needs to be inverted, otherwise False.

@brief Add ISR handler for the corresponding GPIO pin.

@brief Remove ISR handler for the corresponding GPIO pin.

@brief Register GPIO interrupt handler, the handler is an ISR. The handler will be attached to the same CPU core that this function is running on.

@brief set gpio input to a signal, one gpio can input to several signals.

@brief set signal output to gpio, one signal can output to several gpios.

@brief Change GPIO(0-31) pin output by setting, clearing, or disabling pins, GPIO0<->BIT(0). There is no particular ordering guaranteed; so if the order of writes is significant, calling code should divide a single call into multiple calls.

@brief Change GPIO(32-39) pin output by setting, clearing, or disabling pins, GPIO32<->BIT(0). There is no particular ordering guaranteed; so if the order of writes is significant, calling code should divide a single call into multiple calls.

@brief Hold the pad from gpio number.

@brief enable gpio pad input.

@brief Pull down the pad from gpio number.

@brief Pull up the pad from gpio number.

@brief Select pad as a gpio function from IOMUX.

@brief Set pad driver capability.

@brief Unhold the pad from gpio number.

@brief disable GPIOs to wakeup the ESP32. Please do not call this function in SDK.

@brief Set GPIO to wakeup the ESP32. Please do not call this function in SDK.

@brief Disable pull-down on GPIO.

@brief Enable pull-down on GPIO.

@brief Disable pull-up on GPIO.

@brief Enable pull-up on GPIO.

@brief Reset an gpio to default state (select gpio function, enable pullup and disable input and output).

@brief GPIO set direction

@brief Set GPIO pad drive capability

@brief GPIO set interrupt trigger type

@brief GPIO set output level

@brief Configure GPIO pull-up/pull-down resistors

@brief Disable SLP_SEL to change GPIO status automantically in lightsleep. @param gpio_num GPIO number of the pad.

@brief Enable SLP_SEL to change GPIO status automantically in lightsleep. @param gpio_num GPIO number of the pad.

@brief GPIO set direction at sleep

@brief Configure GPIO pull-up/pull-down resistors at sleep

@brief Uninstall the driver’s GPIO ISR service, freeing related resources.

@brief Disable GPIO wake-up function.

@brief Enable GPIO wake-up function.

@brief Allocate a aligned chunk of memory which has the given capabilities

@brief Allocate a aligned chunk of memory which has the given capabilities. The initialized value in the memory is set to zero.

@brief Used to deallocate memory previously allocated with heap_caps_aligned_alloc

@brief Allocate a chunk of memory which has the given capabilities. The initialized value in the memory is set to zero.

@brief Allocate a chunk of memory as preference in decreasing order.

@brief Check integrity of all heaps with the given capabilities.

@brief Check integrity of heap memory around a given address.

@brief Check integrity of all heap memory in the system.

@brief Dump the full structure of all heaps with matching capabilities.

@brief Dump the full structure of all heaps.

@brief Free memory previously allocated via heap_caps_malloc() or heap_caps_realloc().

@brief Return the size that a particular pointer was allocated with.

@brief Get the total free size of all the regions that have the given capabilities

@brief Get heap info for all regions with the given capabilities.

@brief Get the largest free block of memory able to be allocated with the given capabilities.

@brief Get the total minimum free memory of all regions with the given capabilities

@brief Get the total size of all the regions that have the given capabilities

@brief Allocate a chunk of memory which has the given capabilities

@brief Enable malloc() in external memory and set limit below which malloc() attempts are placed in internal memory.

@brief Allocate a chunk of memory as preference in decreasing order.

@brief Print a summary of all memory with the given capabilities.

@brief Reallocate memory previously allocated via heap_caps_malloc() or heap_caps_realloc().

@brief Allocate a chunk of memory as preference in decreasing order.

@brief registers a callback function to be invoked if a memory allocation operation fails @param callback caller defined callback to be invoked @return ESP_OK if callback was registered.

@brief Returns list of current socket descriptors of active sessions

@brief Get HTTPD global transport context (it was set in the server config struct)

@brief Get HTTPD global user context (it was set in the server config struct)

@brief Helper function to get a URL query tag from a query string of the type param1=val1&param2=val2

@brief Queue execution of a function in HTTPD’s context

@brief Function for registering HTTP error handlers

@brief Registers a URI handler

@brief Search for a field in request headers and return the string length of it’s value

@brief Get the value string of a field from the request headers

@brief Get Query string length from the request URL

@brief Get Query string from the request URL

@brief API to read content data from the HTTP request

@brief Get the Socket Descriptor from the HTTP request

@brief API to send a complete HTTP response.

@brief API to send one HTTP chunk

@brief For sending out error code in response to HTTP request.

@brief API to append any additional headers

@brief API to set the HTTP status code

@brief API to set the HTTP content type

@brief Raw HTTP send

@brief Get session context from socket descriptor

@brief Get session ‘transport’ context by socket descriptor @see httpd_sess_get_ctx()

@brief Set session context by socket descriptor

@brief Override web server’s pending function (by session FD)

@brief Override web server’s receive function (by session FD)

@brief Override web server’s send function (by session FD)

@brief Set session ‘transport’ context by socket descriptor @see httpd_sess_set_ctx()

@brief Trigger an httpd session close externally

@brief Update LRU counter for a given socket

A low level API to receive data from a given socket

A low level API to send data on a given socket

@brief Starts the web server

@brief Stops the web server

@brief Unregister all URI handlers with the specified uri string

@brief Unregister a URI handler

@brief Test if a URI matches the given wildcard template.

@brief Create and init I2C command link @note Before we build I2C command link, we need to call i2c_cmd_link_create() to create a command link. After we finish sending the commands, we need to call i2c_cmd_link_delete() to release and return the resources.

@brief Free I2C command link @note Before we build I2C command link, we need to call i2c_cmd_link_create() to create a command link. After we finish sending the commands, we need to call i2c_cmd_link_delete() to release and return the resources.

@brief I2C driver delete

@brief I2C driver install

@brief disable filter on I2C bus

@brief enable hardware filter on I2C bus Sometimes the I2C bus is disturbed by high frequency noise(about 20ns), or the rising edge of the SCL clock is very slow, these may cause the master state machine broken. enable hardware filter can filter out high frequency interference and make the master more stable. @note Enable filter will slow the SCL clock.

@brief get I2C data transfer mode

@brief get I2C data signal timing

@brief get I2C master clock period

@brief get I2C master start signal timing

@brief get I2C master stop signal timing

@brief get I2C timeout value @param i2c_num I2C port number @param timeout pointer to get timeout value @return - ESP_OK Success - ESP_ERR_INVALID_ARG Parameter error

@brief to delete and free I2C isr.

@brief I2C isr handler register

@brief I2C master send queued commands. This function will trigger sending all queued commands. The task will be blocked until all the commands have been sent out. The I2C APIs are not thread-safe, if you want to use one I2C port in different tasks, you need to take care of the multi-thread issue. @note Only call this function in I2C master mode

@brief Queue command for I2C master to read data from I2C bus @note Only call this function in I2C master mode Call i2c_master_cmd_begin() to send all queued commands

@brief Queue command for I2C master to read one byte from I2C bus @note Only call this function in I2C master mode Call i2c_master_cmd_begin() to send all queued commands

@brief Queue command for I2C master to generate a start signal @note Only call this function in I2C master mode Call i2c_master_cmd_begin() to send all queued commands

@brief Queue command for I2C master to generate a stop signal @note Only call this function in I2C master mode Call i2c_master_cmd_begin() to send all queued commands

@brief Queue command for I2C master to write buffer to I2C bus @note Only call this function in I2C master mode Call i2c_master_cmd_begin() to send all queued commands

@brief Queue command for I2C master to write one byte to I2C bus @note Only call this function in I2C master mode Call i2c_master_cmd_begin() to send all queued commands

@brief I2C parameter initialization

@brief reset I2C rx fifo

@brief reset I2C tx hardware fifo

@brief set I2C data transfer mode

@brief set I2C data signal timing

@brief set I2C master clock period

@brief Configure GPIO signal for I2C sck and sda

@brief set I2C master start signal timing

@brief set I2C master stop signal timing

@brief set I2C timeout value @param i2c_num I2C port number @param timeout timeout value for I2C bus (unit: APB 80Mhz clock cycle) @return - ESP_OK Success - ESP_ERR_INVALID_ARG Parameter error

@brief I2C slave read data from internal buffer. When I2C slave receive data, isr will copy received data from hardware rx fifo to internal ringbuffer. Then users can read from internal ringbuffer. @note Only call this function in I2C slave mode

@brief I2C slave write data to internal ringbuffer, when tx fifo empty, isr will fill the hardware fifo from the internal ringbuffer @note Only call this function in I2C slave mode

@brief Install and start I2S driver.

@brief Uninstall I2S driver.

@brief get clock set on particular port number.

@brief Config I2S param

@brief Enable I2S master mode

@brief Enable I2S slave mode

@brief Init the I2S hal and set the I2S to the default configuration. This function should be called first before other hal layer function is called

@brief Reset I2S TX & RX module, including DMA and FIFO

@brief Set I2S clk div

@brief Set I2S in link

@brief Set I2S rx bits mod

@brief Set I2S rx mode

@brief Set I2S tx bits mod

@brief Set I2S tx mode

@brief Start I2S rx

@brief Start I2S tx

@brief Stop I2S rx

@brief Stop I2S tx

@brief Read data from I2S DMA receive buffer

@brief Set clock & bit width used for I2S RX and TX.

@brief Set I2S dac mode, I2S built-in DAC is disabled by default

@brief Set I2S pin number

@brief Set sample rate used for I2S RX and TX.

@brief Start I2S driver

@brief Stop I2S driver

@brief Write data to I2S DMA transmit buffer.

@brief Write data to I2S DMA transmit buffer while expanding the number of bits per sample. For example, expanding 16-bit PCM to 32-bit PCM.

@brief Zero the contents of the TX DMA buffer.

@brief Attach an CPU interrupt to a hardware source. We have 4 steps to use an interrupt: 1.Attach hardware interrupt source to CPU. intr_matrix_set(0, ETS_WIFI_MAC_INTR_SOURCE, ETS_WMAC_INUM); 2.Set interrupt handler. xt_set_interrupt_handler(ETS_WMAC_INUM, func, NULL); 3.Enable interrupt for CPU. xt_ints_on(1 << ETS_WMAC_INUM); 4.Enable interrupt in the module.

returns ptr to static buffer; not reentrant!

returns ptr to static buffer; not reentrant!

@brief Bind LEDC channel with the selected timer

@brief LEDC channel configuration Configure LEDC channel with the given channel/output gpio_num/interrupt/source timer/frequency(Hz)/LEDC duty resolution

@brief Install LEDC fade function. This function will occupy interrupt of LEDC module. @param intr_alloc_flags Flags used to allocate the interrupt. One or multiple (ORred) ESP_INTR_FLAG_* values. See esp_intr_alloc.h for more info.

@brief Uninstall LEDC fade function.

@brief Start LEDC fading. @note Call ledc_fade_func_install() once before calling this function. Call this API right after ledc_set_fade_with_time or ledc_set_fade_with_step before to start fading. @note If a fade operation is running in progress on that channel, the driver would not allow it to be stopped. Other duty operations will have to wait until the fade operation has finished. @param speed_mode Select the LEDC channel group with specified speed mode. Note that not all targets support high speed mode. @param channel LEDC channel number @param fade_mode Whether to block until fading done.

@brief LEDC get duty

@brief LEDC get channel frequency (Hz)

@brief LEDC get hpoint value, the counter value when the output is set high level.

@brief Register LEDC interrupt handler, the handler is an ISR. The handler will be attached to the same CPU core that this function is running on.

@brief LEDC set duty This function do not change the hpoint value of this channel. if needed, please call ledc_set_duty_with_hpoint. only after calling ledc_update_duty will the duty update. @note ledc_set_duty, ledc_set_duty_with_hpoint and ledc_update_duty are not thread-safe, do not call these functions to control one LEDC channel in different tasks at the same time. A thread-safe version of API is ledc_set_duty_and_update. @note If a fade operation is running in progress on that channel, the driver would not allow it to be stopped. Other duty operations will have to wait until the fade operation has finished. @param speed_mode Select the LEDC channel group with specified speed mode. Note that not all targets support high speed mode. @param channel LEDC channel (0-7), select from ledc_channel_t @param duty Set the LEDC duty, the range of duty setting is [0, (2**duty_resolution)]

@brief A thread-safe API to set duty for LEDC channel and return when duty updated. @note If a fade operation is running in progress on that channel, the driver would not allow it to be stopped. Other duty operations will have to wait until the fade operation has finished.

@brief LEDC set duty and hpoint value Only after calling ledc_update_duty will the duty update. @note ledc_set_duty, ledc_set_duty_with_hpoint and ledc_update_duty are not thread-safe, do not call these functions to control one LEDC channel in different tasks at the same time. A thread-safe version of API is ledc_set_duty_and_update @note If a fade operation is running in progress on that channel, the driver would not allow it to be stopped. Other duty operations will have to wait until the fade operation has finished. @param speed_mode Select the LEDC channel group with specified speed mode. Note that not all targets support high speed mode. @param channel LEDC channel (0-7), select from ledc_channel_t @param duty Set the LEDC duty, the range of duty setting is [0, (2**duty_resolution)] @param hpoint Set the LEDC hpoint value(max: 0xfffff)

@brief LEDC set gradient Set LEDC gradient, After the function calls the ledc_update_duty function, the function can take effect. @note If a fade operation is running in progress on that channel, the driver would not allow it to be stopped. Other duty operations will have to wait until the fade operation has finished. @param speed_mode Select the LEDC channel group with specified speed mode. Note that not all targets support high speed mode. @param channel LEDC channel (0-7), select from ledc_channel_t @param duty Set the start of the gradient duty, the range of duty setting is [0, (2**duty_resolution)] @param fade_direction Set the direction of the gradient @param step_num Set the number of the gradient @param duty_cycle_num Set how many LEDC tick each time the gradient lasts @param duty_scale Set gradient change amplitude

@brief A thread-safe API to set and start LEDC fade function. @note Call ledc_fade_func_install() once before calling this function. @note If a fade operation is running in progress on that channel, the driver would not allow it to be stopped. Other duty operations will have to wait until the fade operation has finished. @param speed_mode Select the LEDC channel group with specified speed mode. Note that not all targets support high speed mode. @param channel LEDC channel index (0-7), select from ledc_channel_t @param target_duty Target duty of fading [0, (2**duty_resolution) - 1] @param scale Controls the increase or decrease step scale. @param cycle_num increase or decrease the duty every cycle_num cycles @param fade_mode choose blocking or non-blocking mode @return - ESP_ERR_INVALID_ARG Parameter error - ESP_OK Success - ESP_ERR_INVALID_STATE Fade function not installed. - ESP_FAIL Fade function init error

@brief A thread-safe API to set and start LEDC fade function, with a limited time. @note Call ledc_fade_func_install() once, before calling this function. @note If a fade operation is running in progress on that channel, the driver would not allow it to be stopped. Other duty operations will have to wait until the fade operation has finished. @param speed_mode Select the LEDC channel group with specified speed mode. Note that not all targets support high speed mode. @param channel LEDC channel index (0-7), select from ledc_channel_t @param target_duty Target duty of fading.( 0 - (2 ** duty_resolution - 1))) @param max_fade_time_ms The maximum time of the fading ( ms ). @param fade_mode choose blocking or non-blocking mode @return - ESP_ERR_INVALID_ARG Parameter error - ESP_OK Success - ESP_ERR_INVALID_STATE Fade function not installed. - ESP_FAIL Fade function init error

@brief Set LEDC fade function. @note Call ledc_fade_func_install() once before calling this function. Call ledc_fade_start() after this to start fading. @note ledc_set_fade_with_step, ledc_set_fade_with_time and ledc_fade_start are not thread-safe, do not call these functions to control one LEDC channel in different tasks at the same time. A thread-safe version of API is ledc_set_fade_step_and_start @note If a fade operation is running in progress on that channel, the driver would not allow it to be stopped. Other duty operations will have to wait until the fade operation has finished. @param speed_mode Select the LEDC channel group with specified speed mode. Note that not all targets support high speed mode. , @param channel LEDC channel index (0-7), select from ledc_channel_t @param target_duty Target duty of fading [0, (2**duty_resolution) - 1] @param scale Controls the increase or decrease step scale. @param cycle_num increase or decrease the duty every cycle_num cycles

@brief Set LEDC fade function, with a limited time. @note Call ledc_fade_func_install() once before calling this function. Call ledc_fade_start() after this to start fading. @note ledc_set_fade_with_step, ledc_set_fade_with_time and ledc_fade_start are not thread-safe, do not call these functions to control one LEDC channel in different tasks at the same time. A thread-safe version of API is ledc_set_fade_step_and_start @note If a fade operation is running in progress on that channel, the driver would not allow it to be stopped. Other duty operations will have to wait until the fade operation has finished. @param speed_mode Select the LEDC channel group with specified speed mode. Note that not all targets support high speed mode. , @param channel LEDC channel index (0-7), select from ledc_channel_t @param target_duty Target duty of fading.( 0 - (2 ** duty_resolution - 1))) @param max_fade_time_ms The maximum time of the fading ( ms ).

@brief LEDC set channel frequency (Hz)

@brief Set LEDC output gpio.

@brief LEDC stop. Disable LEDC output, and set idle level

@brief LEDC timer configuration Configure LEDC timer with the given source timer/frequency(Hz)/duty_resolution

@brief Pause LEDC timer counter

@brief Resume LEDC timer

@brief Reset LEDC timer

@brief Configure LEDC settings

@brief LEDC update channel parameters @note Call this function to activate the LEDC updated parameters. After ledc_set_duty, we need to call this function to update the settings. @note ledc_set_duty, ledc_set_duty_with_hpoint and ledc_update_duty are not thread-safe, do not call these functions to control one LEDC channel in different tasks at the same time. A thread-safe version of API is ledc_set_duty_and_update @param speed_mode Select the LEDC channel group with specified speed mode. Note that not all targets support high speed mode. @param channel LEDC channel (0-7), select from ledc_channel_t

A hack to make sure that the rwlock implementation and the esp32c3 atomics are linked to the final executable Call this function once e.g. in the beginning of your main function

@brief Get the received length of a linked list, until end of the link or eof.

Generate a linked list pointing to a (huge) buffer in an descriptor array.

\brief Deprecated internal AES block decryption function without return value.

\brief Deprecated internal AES block encryption function without return value.

\brief Checkup routine.

\brief Find a specific named_data entry in a sequence or list based on the OID.

\brief Free a mbedtls_asn1_named_data entry

\brief Free all entries in a mbedtls_asn1_named_data list Head will be set to NULL

\brief Retrieve an AlgorithmIdentifier ASN.1 sequence. Updates the pointer to immediately behind the full AlgorithmIdentifier.

\brief Retrieve an AlgorithmIdentifier ASN.1 sequence with NULL or no params. Updates the pointer to immediately behind the full AlgorithmIdentifier.

\brief Retrieve a bitstring ASN.1 tag and its value. Updates the pointer to immediately behind the full tag.

\brief Retrieve a bitstring ASN.1 tag without unused bits and its value. Updates the pointer to the beginning of the bit/octet string.

\brief Retrieve a boolean ASN.1 tag and its value. Updates the pointer to immediately behind the full tag.

\brief Retrieve an integer ASN.1 tag and its value. Updates the pointer to immediately behind the full tag.

\brief Get the length of an ASN.1 element. Updates the pointer to immediately behind the length.

\brief Retrieve a MPI value from an integer ASN.1 tag. Updates the pointer to immediately behind the full tag.

\brief Parses and splits an ASN.1 “SEQUENCE OF ” Updated the pointer to immediately behind the full sequence tag.

\brief Get the tag and length of the tag. Check for the requested tag. Updates the pointer to immediately behind the tag and length.

\brief The generic autenticated decryption (AEAD) function.

\brief The generic autenticated encryption (AEAD) function.

\brief This function checks the tag for AEAD ciphers. Currently supported with GCM and ChaCha20+Poly1305. This must be called after mbedtls_cipher_finish().

\brief The generic all-in-one encryption/decryption function, for all ciphers except AEAD constructs.

\brief The generic cipher finalization function. If data still needs to be flushed from an incomplete block, the data contained in it is padded to the size of the last block, and written to the \p output buffer.

\brief This function frees and clears the cipher-specific context of \p ctx. Freeing \p ctx itself remains the responsibility of the caller.

\brief This function retrieves the cipher-information structure associated with the given cipher name.

\brief This function retrieves the cipher-information structure associated with the given cipher type.

\brief This function retrieves the cipher-information structure associated with the given cipher ID, key size and mode.

\brief This function initializes a \p cipher_context as NONE.

\brief This function retrieves the list of ciphers supported by the generic cipher module.

\brief This function resets the cipher state.

\brief This function sets the initialization vector (IV) or nonce.

\brief This function sets the padding mode, for cipher modes that use padding.

\brief This function sets the key to use with the given context.

\brief This function initializes and fills the cipher-context structure with the appropriate values. It also clears the structure.

\brief The generic cipher update function. It encrypts or decrypts using the given cipher context. Writes as many block-sized blocks of data as possible to output. Any data that cannot be written immediately is either added to the next block, or flushed when mbedtls_cipher_finish() is called. Exception: For MBEDTLS_MODE_ECB, expects a single block in size. For example, 16 Bytes for AES.

\brief This function adds additional data for AEAD ciphers. Currently supported with GCM and ChaCha20+Poly1305. This must be called exactly once, after mbedtls_cipher_reset().

\brief This function writes a tag for AEAD ciphers. Currently supported with GCM and ChaCha20+Poly1305. This must be called after mbedtls_cipher_finish().

\brief This function resets CTR_DRBG context to the state immediately after initial call of mbedtls_ctr_drbg_init().

\brief This function initializes the CTR_DRBG context, and prepares it for mbedtls_ctr_drbg_seed() or mbedtls_ctr_drbg_free().

\param p_rng The CTR_DRBG context. This must be a pointer to a #mbedtls_ctr_drbg_context structure. \param output The buffer to fill. \param output_len The length of the buffer in bytes.

\brief This function updates a CTR_DRBG instance with additional data and uses it to generate random data.

\brief This function reseeds the CTR_DRBG context, that is extracts data from the entropy source.

\param ctx The CTR_DRBG context to seed. It must have been initialized with mbedtls_ctr_drbg_init(). After a successful call to mbedtls_ctr_drbg_seed(), you may not call mbedtls_ctr_drbg_seed() again on the same context unless you call mbedtls_ctr_drbg_free() and mbedtls_ctr_drbg_init() again first. After a failed call to mbedtls_ctr_drbg_seed(), you must call mbedtls_ctr_drbg_free(). \param f_entropy The entropy callback, taking as arguments the \p p_entropy context, the buffer to fill, and the length of the buffer. \p f_entropy is always called with a buffer size equal to the entropy length. \param p_entropy The entropy context to pass to \p f_entropy. \param custom The personalization string. This can be \c NULL, in which case the personalization string is empty regardless of the value of \p len. \param len The length of the personalization string. This must be at most #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT - #MBEDTLS_CTR_DRBG_ENTROPY_LEN.

\brief The CTR_DRBG checkup routine.

\brief This function sets the amount of entropy grabbed on each seed or reseed.

\brief This function turns prediction resistance on or off. The default value is off.

\brief This function sets the reseed interval.

\brief This function updates the state of the CTR_DRBG context.

\brief This function updates the state of the CTR_DRBG context.

\brief This function reads and updates a seed file. The seed is added to this instance.

\brief This function writes a seed file.

\brief This function derives and exports the shared secret \c (G^Y)^X mod \c P.

\brief This function frees and clears the components of a DHM context.

\brief This function initializes the DHM context.

\brief This function generates a DHM key pair and exports its public part together with the DHM parameters in the format used in a TLS ServerKeyExchange handshake message.

\brief This function creates a DHM key pair and exports the raw public key in big-endian format.

\ingroup x509_module */ \brief This function parses DHM parameters in PEM or DER format.

\ingroup x509_module */ \brief This function loads and parses DHM parameters from a file.

\brief This function parses the DHM parameters in a TLS ServerKeyExchange handshake message (DHM modulus, generator, and public key).

\brief This function imports the raw public value of the peer.

\brief The DMH checkup routine.

\brief This function sets the prime modulus and generator.

\brief This function derives and exports the shared secret.

\brief This function computes the shared secret.

\brief This function frees a context.

\brief This function generates an ECDH keypair on an elliptic curve.

\brief This function sets up an ECDH context from an EC key.

\brief This function initializes an ECDH context.

\brief This function generates an EC key pair and exports its in the format used in a TLS ServerKeyExchange handshake message.

\brief This function generates a public key and exports it as a TLS ClientKeyExchange payload.

\brief This function parses the ECDHE parameters in a TLS ServerKeyExchange handshake message.

\brief This function parses and processes the ECDHE payload of a TLS ClientKeyExchange message.

\brief This function sets up the ECDH context with the information given.

\brief This function frees an ECDSA context.

\brief This function sets up an ECDSA context from an EC key pair.

\brief This function generates an ECDSA keypair on the given curve.

\brief This function initializes an ECDSA context.

\brief This function reads and verifies an ECDSA signature.

\brief This function reads and verifies an ECDSA signature, in a restartable way.

\brief This function computes the ECDSA signature of a previously-hashed message.

\brief This function computes the ECDSA signature of a previously-hashed message, deterministic version.

\brief This function computes the ECDSA signature of a previously-hashed message, deterministic version.

\brief This function verifies the ECDSA signature of a previously-hashed message.

\brief This function computes the ECDSA signature and writes it to a buffer, serialized as defined in RFC-4492: Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS).

\brief This function computes an ECDSA signature and writes it to a buffer, serialized as defined in RFC-4492: Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS).

\brief This function computes the ECDSA signature and writes it to a buffer, in a restartable way.

\brief This function checks that an \p mbedtls_mpi is a valid private key for this curve.

\brief This function checks that the keypair objects \p pub and \p prv have the same group and the same public point, and that the private key in \p prv is consistent with the public key.

\brief This function checks that a point is a valid public key on this curve.

\brief This function copies the contents of point \p Q into point \p P.

\brief This function retrieves curve information from an internal group identifier.

\brief This function retrieves curve information from a human-readable name.

\brief This function retrieves curve information from a TLS NamedCurve value.

\brief This function retrieves the information defined in mbedtls_ecp_curve_info() for all supported curves in order of preference.

\brief This function generates an ECP key.

\brief This function generates an ECP keypair.

\brief This function generates a keypair with a configurable base point.

\brief This function generates a private key.

\brief This function copies the contents of group \p src into group \p dst.

\brief This function frees the components of an ECP group.

\brief This function initializes an ECP group context without loading any domain parameters.

\brief This function sets up an ECP group context from a standardized set of domain parameters.

\brief This function retrieves the list of internal group identifiers of all supported curves in the order of preference.

\brief This function checks if a point is the point at infinity.

\brief This function frees the components of a key pair.

\brief This function initializes a key pair as an invalid one.

\brief This function performs a scalar multiplication of a point by an integer: \p R = \p m * \p P.

\brief This function performs multiplication of a point by an integer: \p R = \p m * \p P in a restartable way.

\brief This function performs multiplication and addition of two points by integers: \p R = \p m * \p P + \p n * \p Q

\brief This function performs multiplication and addition of two points by integers: \p R = \p m * \p P + \p n * \p Q in a restartable way.

\brief This function compares two points.

\brief This function frees the components of a point.

\brief This function initializes a point as zero.

\brief This function imports a point from unsigned binary data.

\brief This function imports a non-zero point from two ASCII strings.

\brief This function exports a point into unsigned binary data.

\brief The ECP checkup routine.

\brief This function sets a point to the point at infinity.

\brief This function sets up an ECP group context from a TLS ECParameters record as defined in RFC 4492, Section 5.4.

\brief This function extracts an elliptic curve group ID from a TLS ECParameters record as defined in RFC 4492, Section 5.4.

\brief This function imports a point from a TLS ECPoint record.

\brief This function exports an elliptic curve as a TLS ECParameters record as defined in RFC 4492, Section 5.4.

\brief This function exports a point as a TLS ECPoint record defined in RFC 4492, Section 5.4.

\brief Adds an entropy source to poll (Thread-safe if MBEDTLS_THREADING_C is enabled)

\brief Free the data in the context

\brief Retrieve entropy from the accumulator (Maximum length: MBEDTLS_ENTROPY_BLOCK_SIZE) (Thread-safe if MBEDTLS_THREADING_C is enabled)

\brief Trigger an extra gather poll for the accumulator (Thread-safe if MBEDTLS_THREADING_C is enabled)

\brief Initialize the context

\brief Checkup routine

\brief Add data to the accumulator manually (Thread-safe if MBEDTLS_THREADING_C is enabled)

\brief Read and update a seed file. Seed is added to this instance. No more than MBEDTLS_ENTROPY_MAX_SEED_SIZE bytes are read from the seed file. The rest is ignored.

\brief Write a seed file

\brief This function processes a single data block within the ongoing SHA-512 computation. This function is for internal use only.

\brief This function calculates the message-digest of a buffer, with respect to a configurable message-digest algorithm in a single call.

\brief This function clones the state of an message-digest context.

\brief This function calculates the message-digest checksum result of the contents of the provided file.

\brief This function finishes the digest operation, and writes the result to the output buffer.

\brief This function clears the internal structure of \p ctx and frees any embedded internal structure, but does not free \p ctx itself.

\brief This function extracts the message-digest name from the message-digest information structure.

\brief This function extracts the message-digest size from the message-digest information structure.

\brief This function extracts the message-digest type from the message-digest information structure.

\brief This function calculates the full generic HMAC on the input buffer with the provided key.

\brief This function finishes the HMAC operation, and writes the result to the output buffer.

\brief This function prepares to authenticate a new message with the same key as the previous HMAC operation.

\brief This function sets the HMAC key and prepares to authenticate a new message.

\brief This function feeds an input buffer into an ongoing HMAC computation.

\brief This function returns the message-digest information associated with the given digest name.

\brief This function returns the message-digest information associated with the given digest type.

\brief This function initializes a message-digest context without binding it to a particular message-digest algorithm.

\brief This function selects the message digest algorithm to use, and allocates internal structures.

\brief This function returns the list of digests supported by the generic digest module.

\brief This function selects the message digest algorithm to use, and allocates internal structures.

\brief This function starts a message-digest computation.

\brief This function feeds an input buffer into an ongoing message-digest computation.

\brief Perform an unsigned addition of MPIs: X = |A| + |B|

\brief Perform a signed addition of an MPI and an integer: X = A + b

\brief Perform a signed addition of MPIs: X = A + B

\brief Return the number of bits up to and including the most significant bit of value \c 1.

\brief Compare the absolute values of two MPIs.

\brief Compare an MPI with an integer.

\brief Compare two MPIs.

\brief Make a copy of an MPI.

\brief Perform a division with remainder of an MPI by an integer: A = Q * b + R

\brief Perform a division with remainder of two MPIs: A = Q * B + R

\brief Perform a sliding-window exponentiation: X = A^E mod N

\brief Fill an MPI with a number of random bytes.

\brief This function frees the components of an MPI context.

\brief Compute the greatest common divisor: G = gcd(A, B)

\brief Generate a prime number.

\brief Get a specific bit from an MPI.

\brief Enlarge an MPI to the specified number of limbs.

\brief Initialize an MPI context.

\brief Compute the modular inverse: X = A^-1 mod N

\brief Perform a Miller-Rabin primality test with error probability of 2-80.

\brief Miller-Rabin primality test.

\brief Return the number of bits of value \c 0 before the least significant bit of value \c 1.

\brief Store integer value in MPI.

\brief Check if an MPI is less than the other in constant time.

\brief Perform a modular reduction with respect to an integer. r = A mod b

\brief Perform a modular reduction. R = A mod B

\brief Perform a multiplication of an MPI with an unsigned integer: X = A * b

\brief Perform a multiplication of two MPIs: X = A * B

\brief Import an MPI from unsigned big endian binary data.

\brief Read an MPI from a line in an opened file.

\brief Import an MPI from an ASCII string.

\brief Perform a safe conditional copy of MPI which doesn’t reveal whether the condition was true or not.

\brief Perform a safe conditional swap which doesn’t reveal whether the condition was true or not.

\brief Checkup routine

\brief Modify a specific bit in an MPI.

\brief Perform a left-shift on an MPI: X <<= count

\brief Perform a right-shift on an MPI: X >>= count

\brief This function resizes an MPI downwards, keeping at least the specified number of limbs.

\brief Return the total size of an MPI value in bytes.

\brief Perform an unsigned subtraction of MPIs: X = |A| - |B|

\brief Perform a signed subtraction of an MPI and an integer: X = A - b

\brief Perform a signed subtraction of MPIs: X = A - B

\brief Swap the contents of two MPIs.

\brief Export an MPI into unsigned big endian binary data of fixed size.

\brief Export an MPI into an opened file.

\brief Export an MPI to an ASCII string.

\brief Accept a connection from a remote client

\brief Create a receiving socket on bind_ip:port in the chosen protocol. If bind_ip == NULL, all interfaces are bound.

\brief Initiate a connection with host:port in the given protocol

\brief Gracefully shutdown the connection and free associated data

\brief Initialize a context Just makes the context ready to be used or freed safely.

\brief Check and wait for the context to be ready for read/write

\brief Read at most ‘len’ characters. If no error occurs, the actual amount read is returned.

\brief Read at most ‘len’ characters, blocking for at most ‘timeout’ seconds. If no error occurs, the actual amount read is returned.

\brief Write at most ‘len’ characters. If no error occurs, the actual amount read is returned.

\brief Set the socket blocking

\brief Set the socket non-blocking

\brief Portable usleep helper

\brief Tell if a context can do the operation given by type

\brief Check if a public-private pair of keys matches.

\brief Export debug information

\brief Decrypt message (including padding if relevant).

\brief Encrypt message (including padding if relevant).

\brief Free the components of a #mbedtls_pk_context.

\brief Get the size in bits of the underlying key

\brief Access the type name

\brief Get the key type

\brief Return information associated with the given PK type

\brief Initialize a #mbedtls_pk_context (as NONE).

\ingroup pk_module */ \brief Parse a private key in PEM or DER format

\ingroup pk_module */ \brief Load and parse a private key

\ingroup pk_module */ \brief Parse a public key in PEM or DER format

\ingroup pk_module */ \brief Load and parse a public key

\brief Parse a SubjectPublicKeyInfo DER structure

\brief Initialize a PK context with the information given and allocates the type-specific PK subcontext.

\brief Initialize an RSA-alt context

\brief Make signature, including padding if relevant.

\brief Restartable version of \c mbedtls_pk_sign()

\brief Verify signature (including padding if relevant).

\brief Verify signature, with options. (Includes verification of the padding depending on type.)

\brief Restartable version of \c mbedtls_pk_verify()

\brief Write a private key to a PKCS#1 or SEC1 DER structure Note: data is written at the end of the buffer! Use the return value to determine where you should start using the buffer

\brief Write a private key to a PKCS#1 or SEC1 PEM string

\brief Write a subjectPublicKey to ASN.1 data Note: function works backwards in data buffer

\brief Write a public key to a SubjectPublicKeyInfo DER structure Note: data is written at the end of the buffer! Use the return value to determine where you should start using the buffer

\brief Write a public key to a PEM string

\brief This function dynamically sets the memory-management functions used by the library, during runtime.

\brief This function performs any platform-specific initialization operations.

\brief This function performs any platform teardown operations.

\brief Securely zeroize a buffer

\brief This function checks if a context contains an RSA private key and perform basic consistency checks.

\brief This function checks a public-private RSA key pair.

\brief This function checks if a context contains at least an RSA public key.

\brief This function completes an RSA context from a set of imported core parameters.

\brief This function copies the components of an RSA context.

\brief This function exports the core parameters of an RSA key.

\brief This function exports CRT parameters of a private RSA key.

\brief This function exports core parameters of an RSA key in raw big-endian binary format.

\brief This function frees the components of an RSA key.

\brief This function generates an RSA keypair.

\brief This function retrieves the length of RSA modulus in Bytes.

\brief This function imports a set of core parameters into an RSA context.

\brief This function imports core RSA parameters, in raw big-endian binary format, into an RSA context.

\brief This function initializes an RSA context.

\brief This function performs an RSA operation, then removes the message padding.

\brief This function adds the message padding, then performs an RSA operation.

\brief This function performs a private RSA operation to sign a message digest using PKCS#1.

\brief This function performs a public RSA operation and checks the message digest.

\brief This function performs an RSA private key operation.

\brief This function performs an RSA public key operation.

\brief This function performs a PKCS#1 v2.1 OAEP decryption operation (RSAES-OAEP-DECRYPT).

\brief This function performs a PKCS#1 v2.1 OAEP encryption operation (RSAES-OAEP-ENCRYPT).

\brief This function performs a PKCS#1 v1.5 decryption operation (RSAES-PKCS1-v1_5-DECRYPT).

\brief This function performs a PKCS#1 v1.5 encryption operation (RSAES-PKCS1-v1_5-ENCRYPT).

\brief This function performs a PKCS#1 v1.5 signature operation (RSASSA-PKCS1-v1_5-SIGN).

\brief This function performs a PKCS#1 v1.5 verification operation (RSASSA-PKCS1-v1_5-VERIFY).

\brief This function performs a PKCS#1 v2.1 PSS signature operation (RSASSA-PSS-SIGN).

\brief This function performs a PKCS#1 v2.1 PSS verification operation (RSASSA-PSS-VERIFY).

\brief This function performs a PKCS#1 v2.1 PSS verification operation (RSASSA-PSS-VERIFY).

\brief The RSA checkup routine.

\brief This function sets padding for an already initialized RSA context. See mbedtls_rsa_init() for details.

\brief This function calculates the SHA-512 or SHA-384 checksum of a buffer.

\brief This function clones the state of a SHA-512 context.

\brief This function finishes the SHA-512 operation, and writes the result to the output buffer.

\brief This function finishes the SHA-512 operation, and writes the result to the output buffer.

\brief This function clears a SHA-512 context.

\brief This function initializes a SHA-512 context.

\brief This function processes a single data block within the ongoing SHA-512 computation. This function is for internal use only.

\brief This function calculates the SHA-512 or SHA-384 checksum of a buffer.

\brief The SHA-384 or SHA-512 checkup routine.

\brief This function starts a SHA-384 or SHA-512 checksum calculation.

\brief This function starts a SHA-384 or SHA-512 checksum calculation.

\brief This function feeds an input buffer into an ongoing SHA-512 checksum calculation.

\brief This function feeds an input buffer into an ongoing SHA-512 checksum calculation.

\brief Check if there is data already read from the underlying transport but not yet processed.

\brief Notify the peer that the connection is being closed

\brief Set the supported Application Layer Protocols.

\brief Set the certificate verification mode Default: NONE on server, REQUIRED on client

\brief Set the data required to verify peer certificate

\brief Enable / Disable 1/n-1 record splitting (Default: MBEDTLS_SSL_CBC_RECORD_SPLITTING_ENABLED)

\brief Set the X.509 security profile used for verification

\brief Whether to send a list of acceptable CAs in CertificateRequest messages. (Default: do send)

\brief Set the list of allowed ciphersuites and the preference order. First in the list has the highest preference. (Overrides all version-specific lists)

\brief Set the list of allowed ciphersuites and the preference order for a specific version of the protocol. (Only useful on the server side)

\brief Set the allowed curves in order of preference. (Default: all defined curves in order of decreasing size.)

\brief Set the debug callback

\brief Set the Diffie-Hellman public P and G values, read as hexadecimal strings (server-side only) (Default values: MBEDTLS_DHM_RFC3526_MODP_2048_[PG])

\brief Set the Diffie-Hellman public P and G values from big-endian binary presentations. (Default values: MBEDTLS_DHM_RFC3526_MODP_2048_[PG]_BIN)

\brief Set the Diffie-Hellman public P and G values, read from existing context (server-side only)

\brief Set the minimum length for Diffie-Hellman parameters. (Client-side only.) (Default: 1024 bits.)

\brief Enable or disable Encrypt-then-MAC (Default: MBEDTLS_SSL_ETM_ENABLED)

\brief Set the current endpoint type

\brief Configure key export callback. (Default: none.)

\brief Enable or disable Extended Master Secret negotiation. (Default: MBEDTLS_SSL_EXTENDED_MS_ENABLED)

\brief Set the fallback flag (client-side only). (Default: MBEDTLS_SSL_IS_NOT_FALLBACK).

\brief Prevent or allow legacy renegotiation. (Default: MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION)

\brief Set the maximum fragment length to emit and/or negotiate. (Typical: the smaller of #MBEDTLS_SSL_IN_CONTENT_LEN and #MBEDTLS_SSL_OUT_CONTENT_LEN, usually 2^14 bytes) (Server: set maximum fragment length to emit, usually negotiated by the client during handshake) (Client: set maximum fragment length to emit and negotiate with the server during handshake) (Default: #MBEDTLS_SSL_MAX_FRAG_LEN_NONE)

\brief Set the maximum supported version sent from the client side and/or accepted at the server side (Default: MBEDTLS_SSL_MAX_MAJOR_VERSION, MBEDTLS_SSL_MAX_MINOR_VERSION)

\brief Set the minimum accepted SSL/TLS protocol version (Default: TLS 1.0)

\brief Set own certificate chain and private key

\brief Set the timeout period for mbedtls_ssl_read() (Default: no timeout.)

\brief Enable / Disable renegotiation support for connection when initiated by peer (Default: MBEDTLS_SSL_RENEGOTIATION_DISABLED)

\brief Enforce renegotiation requests. (Default: enforced, max_records = 16)

\brief Set record counter threshold for periodic renegotiation. (Default: 2^48 - 1)

\brief Set the random number generator callback

\brief Set the session cache callbacks (server-side only) If not set, no session resuming is done (except if session tickets are enabled too).

\brief Enable / Disable session tickets (client only). (Default: MBEDTLS_SSL_SESSION_TICKETS_ENABLED.)

\brief Configure SSL session ticket callbacks (server only). (Default: none.)

\brief Set the allowed hashes for signatures during the handshake. (Default: all SHA-2 hashes, largest first. Also SHA-1 if the compile-time option MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_KEY_EXCHANGE is enabled.)

\brief Set server side ServerName TLS extension callback (optional, server-side only).

\brief Set the transport type (TLS or DTLS). Default: TLS

\brief Activate negotiation of truncated HMAC (Default: MBEDTLS_SSL_TRUNC_HMAC_DISABLED)

\brief Set the verification callback (Optional).

\brief Load reasonnable default SSL configuration values. (You need to call mbedtls_ssl_config_init() first.)

\brief Free an SSL configuration context

\brief Initialize an SSL configuration context Just makes the context ready for mbedtls_ssl_config_defaults() or mbedtls_ssl_config_free().

\brief Free referenced items in an SSL context and clear memory

\brief Get the name of the negotiated Application Layer Protocol. This function should be called after the handshake is completed.

\brief Return the number of application data bytes remaining to be read from the current record.

\brief Return the name of the current ciphersuite

\brief Return the ID of the ciphersuite associated with the given name

\brief Return the name of the ciphersuite associated with the given ID

\brief Return the maximum fragment length (payload, in bytes). This is the value negotiated with peer if any, or the locally configured value.

\brief Return the current maximum outgoing record payload in bytes. This takes into account the config.h setting \c MBEDTLS_SSL_OUT_CONTENT_LEN, the configured and negotiated max fragment length extension if used, and for DTLS the path MTU as configured and current record expansion.

\brief Return the peer certificate from the current connection

\brief Return the (maximum) number of bytes added by the record layer: header + encryption/MAC overhead (inc. padding)

\brief Save session in order to resume it later (client-side only) Session data is copied to presented session structure.

\brief Return the result of the certificate verification

\brief Return the current SSL version (SSLv3/TLSv1/etc)

\brief Perform the SSL handshake

\brief Perform a single step of the SSL handshake

\brief Initialize an SSL context Just makes the context ready for mbedtls_ssl_setup() or mbedtls_ssl_free()

\brief Read at most ‘len’ application data bytes

\brief Initiate an SSL renegotiation on the running connection. Client: perform the renegotiation right now. Server: request renegotiation, which will be performed during the next call to mbedtls_ssl_read() if honored by client.

\brief Send an alert message

\brief Free referenced items in an SSL session including the peer certificate and clear memory

\brief Initialize SSL session structure

\brief Reset an already initialized SSL context for re-use while retaining application-set variables, function pointers and data.

\brief Set the underlying BIO callbacks for write, read and read-with-timeout.

\brief Set or reset the hostname to check against the received server certificate. It sets the ServerName TLS extension, too, if that extension is enabled. (client-side only)

\brief Set authmode for the current handshake.

\brief Set the data required to verify peer certificate for the current handshake

\brief Set own certificate and key for the current handshake

\brief Request resumption of session (client-side only) Session data is copied from presented session structure.

\brief Set the timer callbacks (Mandatory for DTLS.)

\brief Set up an SSL context for use

\brief Try to write exactly ‘len’ application data bytes

\brief Translate a mbed TLS error code into a string representation, Result is truncated if necessary and always includes a terminating null byte.

\brief Unallocate all CRL data

\brief Returns an informational string about the CRL.

\brief Initialize a CRL (chain)

\brief Parse one or more CRLs and append them to the chained list

\brief Parse a DER-encoded CRL and append it to the chained list

\brief Load one or more CRLs and append them to the chained list

\brief Check usage of certificate against extendedKeyUsage.

\brief Check usage of certificate against keyUsage extension.

\brief Unallocate all certificate data

\brief Returns an informational string about the certificate.

\brief Initialize a certificate (chain)

\brief Verify the certificate revocation status

\brief Parse one DER-encoded or one or more concatenated PEM-encoded certificates and add them to the chained list.

\brief Parse a single DER formatted certificate and add it to the chained list.

\brief Load one or more certificates and add them to the chained list. Parses permissively. If some certificates can be parsed, the result is the number of failed certificates it encountered. If none complete correctly, the first error is returned.

\brief Load one or more certificate files from a path and add them to the chained list. Parses permissively. If some certificates can be parsed, the result is the number of failed certificates it encountered. If none complete correctly, the first error is returned.

\brief Verify the certificate signature

\brief Returns an informational string about the verification status of a certificate.

\brief Restartable version of \c mbedtls_crt_verify_with_profile()

\brief Verify the certificate signature according to profile

\brief Store the certificate DN in printable form into buf; no more than size characters will be written.

\brief Checkup routine

\brief Store the certificate serial in printable form into buf; no more than size characters will be written.

\brief Check a given mbedtls_x509_time against the system time and tell if it’s in the future.

\brief Check a given mbedtls_x509_time against the system time and tell if it’s in the past.

\brief Write a built up certificate to a X509 DER structure Note: data is written at the end of the buffer! Use the return value to determine where you should start using the buffer

\brief Free the contents of a CRT write context

\brief Initialize a CRT writing context

\brief Write a built up certificate to a X509 PEM string

\brief Set the authorityKeyIdentifier extension for a CRT Requires that mbedtls_x509write_crt_set_issuer_key() has been called before

\brief Set the basicConstraints extension for a CRT

\brief Generic function to add to or replace an extension in the CRT

\brief Set the issuer key used for signing the certificate

\brief Set the issuer name for a Certificate Issuer names should contain a comma-separated list of OID types and values: e.g. “C=UK,O=ARM,CN=mbed TLS CA”

\brief Set the Key Usage Extension flags (e.g. MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_KEY_CERT_SIGN)

\brief Set the MD algorithm to use for the signature (e.g. MBEDTLS_MD_SHA1)

\brief Set the Netscape Cert Type flags (e.g. MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT | MBEDTLS_X509_NS_CERT_TYPE_EMAIL)

\brief Set the serial number for a Certificate.

\brief Set the subject public key for the certificate

\brief Set the subjectKeyIdentifier extension for a CRT Requires that mbedtls_x509write_crt_set_subject_key() has been called before

\brief Set the subject name for a Certificate Subject names should contain a comma-separated list of OID types and values: e.g. “C=UK,O=ARM,CN=mbed TLS Server 1”

\brief Set the validity period for a Certificate Timestamps should be in string format for UTC timezone i.e. “YYYYMMDDhhmmss” e.g. “20131231235959” for December 31st 2013 at 23:59:59

\brief Set the verion for a Certificate Default: MBEDTLS_X509_CRT_VERSION_3

@brief Stop and free mDNS server

@brief System event handler This method controls the service state on all active interfaces and applications are required to call it from the system event handler for normal operation of mDNS service.

@brief Set the hostname for mDNS server required if you want to advertise services

@brief Initialize mDNS on given interface

@brief Set the default instance name for mDNS server

@brief Query mDNS for host or service All following query methods are derived from this one

@brief Query mDNS for A record

@brief Query mDNS for A record

@brief Query mDNS for service

@brief Free query results

@brief Query mDNS for SRV record

@brief Query mDNS for TXT record

@brief Add service to mDNS server

@brief Set instance name for service

@brief Set service port

@brief Remove service from mDNS server

@brief Remove and free all services from mDNS server

@brief Remove TXT item for service TXT record

@brief Set/Add TXT item for service TXT record

@brief Replace all TXT items for service

@brief allocate a chunk of memory with specific alignment

@brief free() a buffer aligned in a given heap.

@brief Check heap integrity

@brief Dump heap information to stdout

@brief free() a buffer in a given heap.

@brief Return free heap size

@brief Return the size that a particular pointer was allocated with.

@brief Return metadata about a given heap

@brief malloc() a buffer in a given heap

@brief Return the lifetime minimum free heap size

@brief realloc() a buffer in a given heap.

@brief Register a new heap for use

@brief Associate a private lock pointer with a heap

@brief Close the storage handle and free any allocated resources

@brief Write any pending changes to non-volatile storage

@brief Create an iterator to enumerate NVS entries based on one or more parameters

@brief Fills nvs_entry_info_t structure with information about entry pointed to by the iterator.

@brief Returns next item matching the iterator criteria, NULL if no such item exists.

@brief Erase all key-value pairs in a namespace

@brief Erase key-value pair with given key name.

@brief Deinitialize NVS storage for the default NVS partition

@brief Deinitialize NVS storage for the given NVS partition

@brief Erase the default NVS partition

@brief Erase specified NVS partition

@brief Erase custom partition.

@brief Generate and store NVS keys in the provided esp partition

@brief Initialize the default NVS partition.

@brief Initialize NVS flash storage for the specified partition.

@brief Initialize NVS flash storage for the partition specified by partition pointer.

@brief Read NVS security configuration from a partition.

@brief Initialize the default NVS partition.

@brief Initialize NVS flash storage for the specified partition.

@brief get blob value for given key

@{*/ @brief get int8_t value for given key

@brief get int16_t value for given key

@brief get int32_t value for given key

@brief get int64_t value for given key

@brief Fill structure nvs_stats_t. It provides info about used memory the partition.

@{*/ @brief get string value for given key

@brief get uint8_t value for given key

@brief get uint16_t value for given key

@brief get uint32_t value for given key

@brief get uint64_t value for given key

@brief Calculate all entries in a namespace.

@brief Open non-volatile storage with a given namespace from the default NVS partition

@brief Open non-volatile storage with a given namespace from specified partition

@brief Release iterator

@brief set variable length binary value for given key

@{*/ @brief set int8_t value for given key

@brief set int16_t value for given key

@brief set int32_t value for given key

@brief set int64_t value for given key

@brief set string for given key

@brief set uint8_t value for given key

@brief set uint16_t value for given key

@brief set uint32_t value for given key

@brief set uint64_t value for given key

Get task name

@brief disable peripheral module

@brief enable peripheral module

@brief reset peripheral module

Get local storage pointer specific to the given task.

Returns the start of the stack associated with xTask.

@brief Add channel into a group (channels in the same group will transmit simultaneously)

@brief Clear mask value to RMT interrupt enable register.

@brief Configure RMT parameters

@brief Initialize RMT driver

@brief Uninstall RMT driver.

@brief Fill memory data of channel with given RMT items.

@brief Get the current status of eight channels.

@brief Get RMT clock divider, channel clock is divided from source clock.

@brief Get speed of channel’s internal counter clock.

@brief Get RMT idle output level for transmitter

@brief Get RMT memory block number

@brief Get RMT memory low power mode.

@brief Get RMT memory owner.

@brief Get ringbuffer from RMT.

@brief Get RMT idle threshold value.

@brief Get RMT source clock

@brief Get RMT status

@brief Get RMT tx loop mode.

@brief Deregister previously registered RMT interrupt handler

@brief Register RMT interrupt handler, the handler is an ISR.

@brief Reset RMT TX/RX memory index.

@brief Registers a callback that will be called when transmission ends.

@brief Remove channel out of a group

@brief Reset RMT RX memory

@brief Set RMT start receiving data.

@brief Set RMT stop receiving data.

@brief Set RMT clock divider, channel clock is divided from source clock.

@brief Set RMT RX error interrupt enable

@brief Set RMT idle output level for transmitter

@brief Set mask value to RMT interrupt enable register.

@brief Set RMT memory block number for RMT channel

@brief Set RMT memory in low power mode.

@brief Set RMT memory owner.

@brief Set RMT pin

@brief Set RMT RX filter.

@brief Set RMT RX idle threshold value

@brief Set RMT RX interrupt enable

@brief Set RMT RX threshold event interrupt enable

@brief Set RMT source clock

@brief Configure RMT carrier for TX signal.

@brief Set RMT TX interrupt enable

@brief Set loop count for RMT TX channel

@brief Set RMT tx loop mode.

@brief Set RMT TX threshold event interrupt enable

@brief Get the user context set by ‘rmt_translator_set_context’

@brief Init rmt translator and register user callback. The callback will convert the raw data that needs to be sent to rmt format. If a channel is initialized more than once, tha user callback will be replaced by the later.

@brief Set user context for the translator of specific channel

@brief Reset RMT TX memory

@brief Set RMT start sending data from memory.

@brief Set RMT stop sending.

@brief Wait RMT TX finished.

@brief RMT send waveform from rmt_item array.

@brief Translate uint8_t type of data into rmt format and send it out. Requires rmt_translator_init to init the translator first.

@brief Enable or disable 8 MHz internal oscillator

@brief Get the state of 8 MHz internal oscillator @return true if the oscillator is enabled

@brief Get the state of /256 divider which is applied to 8MHz clock @return true if the divided output is enabled

@brief Enable 32k oscillator, configuring it for fast startup time. Note: to achieve higher frequency stability, rtc_clk_32k_enable function must be called one the 32k XTAL oscillator has started up. This function will initially disable the 32k XTAL oscillator, so it should not be called when the system is using 32k XTAL as RTC_SLOW_CLK.

@brief Enable or disable 32 kHz XTAL oscillator @param en true to enable, false to disable

@brief Configure 32 kHz XTAL oscillator to accept external clock signal

@brief Get the state of 32k XTAL oscillator @return true if 32k XTAL oscillator has been enabled

@brief Get the current stored APB frequency. @return The APB frequency value as last set via rtc_clk_apb_freq_update(), in Hz.

@brief Store new APB frequency value into RTC_APB_FREQ_REG

@brief Enable or disable APLL

@brief Measure RTC slow clock’s period, based on main XTAL frequency

@brief Measure ratio between XTAL frequency and RTC slow clock frequency @param cal_clk slow clock to be measured @param slow_clk_cycles number of slow clock cycles to average @return average ratio between XTAL frequency and slow clock frequency, Q13.19 fixed point format, or 0 if calibration has timed out.

@brief Get the currently used CPU frequency configuration @param[out] out_config Output, CPU frequency configuration structure

@brief Get CPU frequency config for a given frequency @param freq_mhz Frequency in MHz @param[out] out_config Output, CPU frequency configuration structure @return true if frequency can be obtained, false otherwise

@brief Switch CPU frequency

@brief Switch CPU frequency (optimized for speed)

@brief Switch CPU clock source to XTAL

@brief Get the RTC_FAST_CLK source @return currently selected clock source (one of rtc_fast_freq_t values)

@brief Select source for RTC_FAST_CLK @param fast_freq clock source (one of rtc_fast_freq_t values)

@brief Calculate the real clock value after the clock calibration

Initialize clocks and set CPU frequency

@brief Get the RTC_SLOW_CLK source @return currently selected clock source (one of rtc_slow_freq_t values)

@brief Get the approximate frequency of RTC_SLOW_CLK, in Hz

@brief Select source for RTC_SLOW_CLK @param slow_freq clock source (one of rtc_slow_freq_t values)

@brief Busy loop until next RTC_SLOW_CLK cycle

@brief Get main XTAL frequency

@brief Update XTAL frequency

@brief Enter deep sleep mode

@brief Disable the rtc digital 8M clock

@brief Enable the rtc digital 8M clock

Initialize RTC clock and power control related functions @param cfg configuration options as rtc_config_t

@brief Deregister the handler previously registered using rtc_isr_register @param handler handler function to call (as passed to rtc_isr_register) @param handler_arg argument of the handler (as passed to rtc_isr_register) @return - ESP_OK on success - ESP_ERR_INVALID_STATE if a handler matching both handler and handler_arg isn’t registered

@brief Register a handler for specific RTC_CNTL interrupts

@brief Prepare the chip to enter sleep mode

@brief Low level initialize for rtc state machine waiting cycles after waking up

@brief Set target value of RTC counter for RTC_TIMER_TRIG_EN wakeup source @param t value of RTC counter at which wakeup from sleep will happen; only the lower 48 bits are used

@brief Enter deep or light sleep mode

@brief Get current value of RTC counter

@brief Convert time interval from RTC_SLOW_CLK to microseconds @param time_in_us Time interval in RTC_SLOW_CLK cycles @param slow_clk_period Period of slow clock in microseconds, Q13.19 fixed point format (as returned by rtc_slowck_cali). @return time interval in microseconds

@brief Convert time interval from microseconds to RTC_SLOW_CLK cycles @param time_in_us Time interval in microseconds @param slow_clk_period Period of slow clock in microseconds, Q13.19 fixed point format (as returned by rtc_slowck_cali). @return number of slow clock cycles

Get current VDDSDIO configuration If VDDSDIO configuration is overridden by RTC, get values from RTC Otherwise, if VDDSDIO is configured by EFUSE, get values from EFUSE Otherwise, use default values and the level of MTDI bootstrapping pin. @return currently used VDDSDIO configuration

Set new VDDSDIO configuration using RTC registers. If config.force == 1, this overrides configuration done using bootstrapping pins and EFUSE.

Probe and initialize SD/MMC card using given host

@brief Print information about the card to a stream @param stream stream obtained using fopen or fdopen @param card card information structure initialized using sdmmc_card_init

Enable SDIO interrupt in the SDMMC host

Get the data of CIS region of a SDIO card.

Parse and print the CIS information of a SDIO card.

Read blocks of data from an SDIO card using IO_RW_EXTENDED (CMD53)

Read one byte from an SDIO card using IO_RW_DIRECT (CMD52)

Read multiple bytes from an SDIO card using IO_RW_EXTENDED (CMD53)

Block until an SDIO interrupt is received

Write blocks of data to an SDIO card using IO_RW_EXTENDED (CMD53)

Write one byte to an SDIO card using IO_RW_DIRECT (CMD52)

Write multiple bytes to an SDIO card using IO_RW_EXTENDED (CMD53)

Read given number of sectors from the SD/MMC card

Write given number of sectors to SD/MMC card

@brief Release resources allocated using sdspi_host_init

@brief Send command to the card and get response

@brief Initialize SD SPI driver

@brief Attach and initialize an SD SPI device on the specific SPI bus

@brief Initialize SD SPI driver for the specific SPI controller

@brief Enable SDIO interrupt.

@brief Wait for SDIO interrupt until timeout.

@brief Remove an SD SPI device

@brief Set card clock frequency

@brief Configure Sigma-delta channel

@brief Set Sigma-delta channel duty.

@brief Set Sigma-delta signal output pin

@brief Set Sigma-delta channel’s clock pre-scale value. The source clock is APP_CLK, 80MHz. The clock frequency of the sigma-delta channel is APP_CLK / pre_scale

@brief Get the sync interval of SNTP operation

@brief Get set sync mode

@brief Get status of time sync

@brief system time getter used in the sntp module @note The lwip sntp uses u32_t types for sec and us arguments

@brief Restart SNTP

@brief Set the sync interval of SNTP operation

@brief Set the sync mode

@brief Set status of time sync

@brief system time setter used in the sntp module @note The lwip sntp uses u32_t types for sec and us arguments

@brief Set a callback function for time synchronization notification

@brief This function updates the system time.

@brief Allocate a device on a SPI bus

@brief Free a SPI bus

@brief Initialize a SPI bus

@brief Remove a device from the SPI bus

@brief Calculate the working frequency that is most close to desired frequency, and also the register value.

@brief Occupy the SPI bus for a device to do continuous transactions.

@brief Get the result of a SPI transaction queued earlier by spi_device_queue_trans.

@brief Poll until the polling transaction ends.

@brief Immediately start a polling transaction.

@brief Send a polling transaction, wait for it to complete, and return the result

@brief Queue a SPI transaction for interrupt transaction execution. Get the result by spi_device_get_trans_result.

@brief Release the SPI bus occupied by the device. All other devices can start sending transactions.

@brief Send a SPI transaction, wait for it to complete, and return the result

@brief Given a memory address where flash is mapped, return the corresponding physical flash offset.

@brief Check at runtime if flash cache is enabled on both CPUs

@brief Re-enable cache for the core defined as cpuid parameter.

@brief Erase a range of flash sectors

@brief Erase the Flash sector.

@brief Get flash chip size, as set in binary image header

@brief Get the guard functions used for flash access

@brief Sets guard functions to access flash.

@brief Initialize SPI flash access driver

@brief Map region of flash memory into data or instruction address space

@brief Display information about mapped regions

@brief get free pages number which can be mmap

@brief Map sequences of pages of flash memory into data or instruction address space

@brief Release region previously obtained using spi_flash_mmap

@brief Given a physical offset in flash, return the address where it is mapped in the memory space.

@brief Read data from Flash.

@brief Read data from Encrypted Flash.

@brief set wrap mode of flash

@brief Write data to Flash.

@brief Write data encrypted to Flash.

@brief Calculate the working frequency that is most close to desired frequency.

@brief Get the frequency limit of current configurations. SPI master working at this limit is OK, while above the limit, full duplex mode and DMA will not work, and dummy bits will be aplied in the half duplex mode.

@brief Calculate the timing settings of specified frequency and settings.

@brief Free a SPI bus claimed as a SPI slave interface

@brief Get the result of a SPI transaction queued earlier

@brief Initialize a SPI bus as a slave interface

@brief Queue a SPI transaction for execution

@brief Do a SPI transaction

@brief Wait for transmission of output

@brief Suspend or restart the transmission or reception of data

@brief Flush non-transmitted output data and non-read input data

@brief Gets the parameters of the terminal

@brief Get process group ID for session leader for controlling terminal

@brief Compatible version of network stack input function. Translates to esp_netif_receive()

@brief Compatible version of former tcpip_adapter API of esp_netif_action_start for default softAP

@brief Compatible version of former tcpip_adapter API to clear default ethernet handlers @return ESP_OK on success

@brief Compatible version of former tcpip_adapter API to clear default WIFI handlers @return ESP_OK on success

@brief Translates to esp_netif_create_ip6_linklocal @param tcpip_if Interface type corresponding to appropriate instance of esp-netif @return see esp_netif_create_ip6_linklocal

@brief`Translates to esp_netif_dhcpc_get_status @param tcpip_if Interface type corresponding to appropriate instance of esp-netif @param status @return See esp_netif_dhcpc_get_status

@brief Compatible version of former tcpip_adapter API of esp_netif_dhcpc_option

@brief Compatible version of former tcpip_adapter API of esp_netif_dhcpc_start

@brief Compatible version of former tcpip_adapter API of esp_netif_dhcpc_stop

@brief Compatible version of former tcpip_adapter API of esp_netif_dhcps_get_status

@brief Compatible version of former tcpip_adapter API of esp_netif_dhcps_option

@brief Compatible version of former tcpip_adapter API of esp_netif_dhcps_start

@brief Compatible version of former tcpip_adapter API of esp_netif_dhcps_stop

@brief Compatible version of former tcpip_adapter API of esp_netif_down

@brief Compatible version of network stack input function. Translates to esp_netif_receive()

@brief Compatible version of former tcpip_adapter API of esp_netif_action_start for default ethernet

@brief Compatible version of former tcpip_adapter API of esp_netif_get_dns_info

@brief Compatible version of former tcpip_adapter API of esp_netif_get_handle_from_netif_impl

@brief Compatible version of former tcpip_adapter API of esp_netif_get_hostname

@brief Translates to esp_netif_get_ip6_global

@brief Translates to esp_netif_get_ip6_linklocal

@brief Translates to esp_netif_get_ip_info

@brief Translates to esp_netif_get_netif @param tcpip_if Interface type corresponding to appropriate instance of esp-netif @param netif @return see esp_netif_get_netif

@brief Compatible version of former tcpip_adapter API of esp_netif_get_netif_impl_index

@brief Compatible version of former tcpip_adapter API of esp_netif_get_old_ip_info

@brief Compatible version of former tcpip_adapter API of esp_netif_get_sta_list

@brief Compatiblity mode: convert the esp-netif handle to tcpip_adapter legacy interface enum

@brief tcpip adapter legacy init. It is used only to set the compatibility mode of esp-netif, which will enable backward compatibility of esp-netif.

@brief Translates to esp_netif_is_netif_up @param tcpip_if Interface type corresponding to appropriate instance of esp-netif @return see esp_netif_is_netif_up

@brief Compatible version of setting ethernet default handlers @note Compatible version of wifi handlers are provided in a separate header, as this used to be called privately from wifi_init() @return ESP_OK on success

@brief This function is called from wifi_init to assure backward compatibility mode of tcpip_adapter. In case of legacy use, default instances of ap and sta are created and handlers are registered

@brief Compatible version of former tcpip_adapter API of esp_netif_set_dns_info

@brief Compatible version of former tcpip_adapter API of esp_netif_set_hostname

@brief Compatible version of former tcpip_adapter API of esp_netif_set_ip_info

@brief Compatible version of former tcpip_adapter API of esp_netif_set_old_ip_info

@brief Compatible version of network stack input function. Translates to esp_netif_receive()

@brief Compatible version of former tcpip_adapter API of esp_netif_action_start for default station

@brief Compatible version of former tcpip_adapter API of esp_netif_action_stop

@brief Compatible version of former tcpip_adapter API of esp_netif_up

@brief Send a break for a specific duration

@brief Sets the parameters of the terminal

@brief Deinitializes the timer.

@brief Disable timer interrupt

@brief Enable timer interrupt

@brief Get timer alarm value.

@brief Get timer configure value.

@brief Read the counter value of hardware timer, in unit of a given scale.

@brief Read the counter value of hardware timer.

@brief Clear the masked interrupt status, just used in ISR

@brief Clear timer interrupt status, just used in ISR

@brief Enable alarm interrupt, just used in ISR

@brief Get auto reload enable status, just used in ISR

@brief Get the current counter value, just used in ISR

@brief Get interrupt status, just used in ISR

@brief Clear timer interrupt status, just used in ISR

@brief Disable timer group interrupt, by disable mask

@brief Enable timer group interrupt, by enable mask

@brief Get the masked interrupt status, just used in ISR

@brief Set the alarm threshold for the timer, just used in ISR

@brief Enable/disable a counter, just used in ISR

@brief Initializes and configure the timer.

@brief Add ISR handle callback for the corresponding timer.

@brief Remove ISR handle callback for the corresponding timer.

@brief Register Timer interrupt handler, the handler is an ISR. The handler will be attached to the same CPU core that this function is running on.

@brief Pause the counter of hardware timer.

@brief Enable or disable generation of timer alarm events.

@brief Set timer alarm value.

@brief Enable or disable counter reload function when alarm event occurs.

@brief Set counting mode for hardware timer.

@brief Set counter value to hardware timer.

@brief Set hardware timer source clock divider. Timer groups clock are divider from APB clock.

@brief Give timer spinlock to exit critical protect

@brief Take timer spinlock to enter critical protect

@brief Start the counter of hardware timer.

@brief Clear the receive queue

@brief Clear the transmit queue

@brief Install TWAI driver

@brief Uninstall the TWAI driver

@brief Get current status information of the TWAI driver

@brief Start the bus recovery process

@brief Read TWAI driver alerts

@brief Receive a TWAI message

@brief Reconfigure which alerts are enabled

@brief Start the TWAI driver

@brief Stop the TWAI driver

@brief Transmit a TWAI message

@brief Clear UART interrupt status

@brief Clear UART interrupt enable bits

@brief UART disable pattern detect function. Designed for applications like ‘AT commands’. When the hardware detects a series of one same character, the interrupt will be triggered.

@brief Disable UART RX interrupt (RX_FULL & RX_TIMEOUT INTERRUPT)

@brief Disable UART TX interrupt (TX_FULL & TX_TIMEOUT INTERRUPT)

@brief Uninstall UART driver.

@brief Install UART driver and set the UART to the default configuration.

@brief Set UART interrupt enable

@brief UART enable pattern detect function. Designed for applications like ‘AT commands’. When the hardware detect a series of one same character, the interrupt will be triggered.

@brief Enable UART RX interrupt (RX_FULL & RX_TIMEOUT INTERRUPT)

@brief Enable UART TX interrupt (TX_FULL & TX_TIMEOUT INTERRUPT)

@brief Alias of uart_flush_input. UART ring buffer flush. This will discard all data in the UART RX buffer. @note Instead of waiting the data sent out, this function will clear UART rx buffer. In order to send all the data in tx FIFO, we can use uart_wait_tx_done function. @param uart_num UART port number, the max port number is (UART_NUM_MAX -1).

@brief Clear input buffer, discard all the data is in the ring-buffer. @note In order to send all the data in tx FIFO, we can use uart_wait_tx_done function. @param uart_num UART port number, the max port number is (UART_NUM_MAX -1).

@brief Get the UART baud rate configuration.

@brief UART get RX ring buffer cached data length

@brief Returns collision detection flag for RS485 mode Function returns the collision detection flag into variable pointed by collision_flag. *collision_flag = true, if collision detected else it is equal to false. This function should be executed when actual transmission is completed (after uart_write_bytes()).

@brief Get the UART hardware flow control configuration.

@brief Get the UART parity mode configuration.

@brief Get mutex guarding select() notifications

@brief Get the UART stop bit configuration.

@brief Get the number of RX pin signal edges for light sleep wakeup.

@brief Get the UART data bit configuration.

@brief Configure UART interrupts.

@brief Checks whether the driver is installed or not

@brief Free UART interrupt handler registered by uart_isr_register. Must be called on the same core as uart_isr_register was called.

@brief Register UART interrupt handler (ISR).

@brief Set UART configuration parameters.

@brief Return the nearest detected pattern position in buffer. The positions of the detected pattern are saved in a queue, This function do nothing to the queue. @note If the RX buffer is full and flow control is not enabled, the detected pattern may not be found in the rx buffer due to overflow.

@brief Return the nearest detected pattern position in buffer. The positions of the detected pattern are saved in a queue, this function will dequeue the first pattern position and move the pointer to next pattern position. @note If the RX buffer is full and flow control is not enabled, the detected pattern may not be found in the rx buffer due to overflow.

@brief Allocate a new memory with the given length to save record the detected pattern position in rx buffer.

@brief UART read bytes from UART buffer

@brief Configure behavior of UART RX timeout interrupt.

@brief Set UART baud rate.

@brief Manually set the UART DTR pin level.

@brief Set hardware flow control.

@brief Set UART line inverse mode

@brief Configure TX signal loop back to RX module, just for the test usage.

@brief UART set communication mode

@brief Set UART parity mode.

@brief Set UART pin number

@brief Manually set the UART RTS pin level. @note UART must be configured with hardware flow control disabled.

@brief Set uart threshold value for RX fifo full @note If application is using higher baudrate and it is observed that bytes in hardware RX fifo are overwritten then this threshold can be reduced

@brief UART set threshold timeout for TOUT feature

@brief Set notification callback function for select() events @param uart_num UART port number @param uart_select_notif_callback callback function

@brief Set UART stop bits.

@brief Set software flow control.

@brief Set uart threshold values for TX fifo empty

@brief Set UART idle interval after tx FIFO is empty

@brief Set the number of RX pin signal edges for light sleep wakeup

@brief Set UART data bits.

@brief Send data to the UART port from a given buffer and length.

@brief Wait until UART TX FIFO is empty.

@brief Wait until UART tx memory empty and the last char send ok (polling mode).

@brief Send data to the UART port from a given buffer and length,

@brief Send data to the UART port from a given buffer and length,

configGENERATE_RUN_TIME_STATS and configUSE_STATS_FORMATTING_FUNCTIONS must both be defined as 1 for this function to be available. The application must also then provide definitions for portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() and portGET_RUN_TIME_COUNTER_VALUE() to configure a peripheral timer/counter and return the timers current count value respectively. The counter should be at least 10 times the frequency of the tick count.

Simplified macro for receiving task notification.

Return the number of messages stored in a queue.

Return the number of free spaces available in a queue. This is equal to the number of items that can be sent to the queue before the queue becomes full if no items are removed.

Get current number of tasks

Returns the high water mark of the stack associated with xTask.

Returns the start of the stack associated with xTask.

configUSE_TRACE_FACILITY must be defined as 1 in FreeRTOSConfig.h for uxTaskGetSystemState() to be available.

Obtain the priority of any task.

A version of uxTaskPriorityGet() that can be used from an ISR.

Delete a queue - freeing all the memory allocated for storing of items placed on the queue.

@brief Delete a ring buffer

@brief Get information about ring buffer status

@brief Return a previously-retrieved item to the ring buffer

@brief Return a previously-retrieved item to the ring buffer from an ISR

Delay a task for a given number of ticks.

Delay a task until a specified time.

Remove a task from the RTOS real time kernel’s management. The task being deleted will be removed from all ready, blocked, suspended and event lists.

Stops the real time kernel tick.

Populates a TaskStatus_t structure with information about a task.

Get the state of running tasks as a string

List all the current tasks.

Simplified macro for sending task notification from ISR.

Set the priority of any task.

Resumes a suspended task.

Set local storage pointer specific to the given task.

Set local storage pointer and deletion callback.

@cond */ Starts the real time kernel tick processing.

Suspend a task.

Suspends the scheduler without disabling interrupts.

@brief disable wifi bt common module

@brief enable wifi bt common module

@brief disable wifi module

@brief enable wifi module

@brief Erase part of the WL storage

@brief Mount WL for defined partition

@brief Read data from the WL storage

@brief Get sector size of the WL instance

@brief Get size of the WL storage

@brief Unmount WL for defined partition

@brief Write data to the WL storage

Adds a queue or semaphore to a queue set that was previously created by a call to xQueueCreateSet().

@cond */ The functions defined above are for passing data to and from tasks. The functions below are the equivalents for passing data to and from co-routines.

For internal use only. Use xSemaphoreCreateMutex(), xSemaphoreCreateCounting() or xSemaphoreGetMutexHolder() instead of calling these functions directly.

Queue sets provide a mechanism to allow a task to block (pend) on a read operation from multiple queues or semaphores simultaneously.

It is preferred that the macros xQueueSend(), xQueueSendToFront() and xQueueSendToBack() are used in place of calling this function directly.

@{*/ It is preferred that the macros xQueueSendFromISR(), xQueueSendToFrontFromISR() and xQueueSendToBackFromISR() be used in place of calling this function directly. xQueueGiveFromISR() is an equivalent for use by semaphores that don’t actually copy any data.

Receive an item from a queue without removing the item from the queue. The item is received by copy so a buffer of adequate size must be provided. The number of bytes copied into the buffer was defined when the queue was created.

A version of xQueuePeek() that can be called from an interrupt service routine (ISR).

Receive an item from a queue. The item is received by copy so a buffer of adequate size must be provided. The number of bytes copied into the buffer was defined when the queue was created.

Receive an item from a queue. It is safe to use this function from within an interrupt service routine.

Removes a queue or semaphore from a queue set. A queue or semaphore can only be removed from a set if the queue or semaphore is empty.

xQueueSelectFromSet() selects from the members of a queue set a queue or semaphore that either contains data (in the case of a queue) or is available to take (in the case of a semaphore). xQueueSelectFromSet() effectively allows a task to block (pend) on a read operation on all the queues and semaphores in a queue set simultaneously.

A version of xQueueSelectFromSet() that can be used from an ISR.

For internal use only. Use xSemaphoreTakeMutexRecursive() or xSemaphoreGiveMutexRecursive() instead of calling these functions directly.

@brief Add the ring buffer’s read semaphore to a queue set.

@brief Check if the selected queue set member is the ring buffer’s read semaphore

@brief Create a ring buffer

@brief Create a ring buffer of type RINGBUF_TYPE_NOSPLIT for a fixed item_size

@brief Get current free size available for an item/data in the buffer

@brief Get maximum size of an item that can be placed in the ring buffer

@brief Debugging function to print the internal pointers in the ring buffer

@brief Retrieve an item from the ring buffer

@brief Retrieve an item from the ring buffer in an ISR

@brief Retrieve a split item from an allow-split ring buffer

@brief Retrieve a split item from an allow-split ring buffer in an ISR

@brief Retrieve bytes from a byte buffer, specifying the maximum amount of bytes to retrieve

@brief Retrieve bytes from a byte buffer, specifying the maximum amount of bytes to retrieve. Call this from an ISR.

@brief Remove the ring buffer’s read semaphore from a queue set.

@brief Insert an item into the ring buffer

@brief Acquire memory from the ring buffer to be written to by an external source and to be sent later.

@brief Actually send an item into the ring buffer allocated before by xRingbufferSendAcquire.

@brief Insert an item into the ring buffer in an ISR

INCLUDE_xTaskAbortDelay must be defined as 1 in FreeRTOSConfig.h for this function to be available.

Calls the hook function associated with xTask. Passing xTask as NULL has the effect of calling the Running tasks (the calling task) hook function.

configUSE_TASK_NOTIFICATIONS must be undefined or defined as 1 for this function to be available.

Send task notification from an ISR.

@note This function takes a relatively long time to complete and should be used sparingly.

xTaskGetIdleTaskHandle() is only available if INCLUDE_xTaskGetIdleTaskHandle is set to 1 in FreeRTOSConfig.h.

Get the handle of idle task for the given CPU.

Get tick count

Get tick count from ISR

If the notification state of the task referenced by the handle xTask is eNotified, then set the task’s notification state to eNotWaitingNotification. The task’s notification value is not altered. Set xTask to NULL to clear the notification state of the calling task.

Wait for task notification

Resumes scheduler activity after it was suspended by a call to vTaskSuspendAll().

An implementation of vTaskResume() that can be called from within an ISR.

Type Definitions

@addtogroup ets_timer_apis @{

@addtogroup ets_apis @{

Enum for the HTTP status codes.

Defines the memory ranges allocated to the task when an MPU is used.

Type by which queue sets are referenced. For example, a call to xQueueCreateSet() returns an xQueueSet variable that can then be used as a parameter to xQueueSelectFromSet(), xQueueAddToSet(), etc.

Queue sets can contain both queues and semaphores, so the QueueSetMemberHandle_t is defined as a type to be used where a parameter or return value can be either an QueueHandle_t or an SemaphoreHandle_t.

Type by which ring buffers are referenced. For example, a call to xRingbufferCreate() returns a RingbufHandle_t variable that can then be used as a parameter to xRingbufferSend(), xRingbufferReceive(), etc.

Defines the prototype to which the application task hook function must conform.

Used with the uxTaskGetSnapshotAll() function to save memory snapshot of each task in the system. We need this struct because TCB_t is defined (hidden) in tasks.c.

@cond */ Used internally only.

Prototype of local storage pointer deletion callback.

adc1_channel_t will be deprecated functions, combine into adc_channel_t

adc2_channel_t will be deprecated functions, combine into adc_channel_t

@brief ADC arbiter work mode option.

@brief ADC attenuation parameter. Different parameters determine the range of the ADC. See adc1_config_channel_atten.

@brief ADC resolution setting option.

@brief ADC channels handle. See adc1_channel_t, adc2_channel_t.

@brief ADC digital controller (DMA mode) work mode.

@brief ADC digital controller (DMA mode) filter index options.

@brief ADC digital controller (DMA mode) filter type options. Expression: filter_data = (k-1)/k * last_data + new_data / k.

@brief Digital ADC DMA configuration

@brief ADC digital controller (DMA mode) monitor index options.

@brief Set monitor mode of adc digital controller. MONITOR_HIGH:If ADC_OUT > threshold, Generates monitor interrupt. MONITOR_LOW: If ADC_OUT < threshold, Generates monitor interrupt.

@brief ADC digital controller (DMA mode) output data format option.

@brief ADC digital controller encode option.

@brief ADC unit enumeration.

Restart output.

Possible return values for eTaskConfirmSleepModeStatus().

Task states returned by eTaskGetState.

Definitions for error constants.

@brief Type of calibration value used in characterization

@brief The AES callback function when do WPS connect.

@brief The AES callback function when do WPS connect.

@brief Deinitialize AES decryption

@brief Initialize AES for decryption

@brief Decrypt one AES block

@brief Deinitialize AES encryption

@brief Initialize AES for encryption

@brief Encrypt one AES block

@brief The AES callback function when do STA connect.

@brief The AES callback function when do STA connect.

@brief callback called when a allocation operation fails, if registered @param size in bytes of failed allocation @param caps capabillites requested of failed allocation @param function_name function which generated the failure

@brief Decrypt data using CCMP (Counter Mode CBC-MAC Protocol OR Counter Mode Cipher Block Chaining Message Authentication Code Protocol) which is used in IEEE 802.11i RSN standard. @tk: 128-bit Temporal Key for obtained during 4-way handshake @hdr: Pointer to IEEE802.11 frame headeri needed for AAD @data: Pointer to encrypted data buffer @data_len: Encrypted data length in bytes @decrypted_len: Length of decrypted data @espnow_pkt: Indicates if it’s an ESPNOW packet Returns: Pointer to decrypted data on success, NULL on failure

@brief Encrypt data using CCMP (Counter Mode CBC-MAC Protocol OR Counter Mode Cipher Block Chaining Message Authentication Code Protocol) which is used in IEEE 802.11i RSN standard. @tk: 128-bit Temporal Key for obtained during 4-way handshake @frame: Pointer to IEEE802.11 frame including header @len: Length of the frame including header @hdrlen: Length of the header @pn: Packet Number counter @keyid: Key ID to be mentioned in CCMP Vector @encrypted_len: Length of the encrypted frame including header

@brief ESP chip ID

@brief Chip models

@brief Function type for stub to run on wake from sleep.

@brief Handle of Ethernet driver

@brief Command list for ioctl API

@brief Ethernet MAC

@brief Ethernet mediator

@brief Ethernet PHY

@brief Ethernet driver state

@brief Mode used for reading from SPI flash

@brief SPI flash clock speed values, always refer to them by the enum rather than the actual value (more speed may be appended into the list).

@brief HMAC-MD5 over data buffer (RFC 2104)’

@brief HMAC-MD5 over data vector (RFC 2104)

@brief HMAC-SHA1 over data buffer (RFC 2104)

@brief HMAC-SHA1 over data vector (RFC 2104)

@brief The SHA256 callback function when do WPS connect.

@brief HTTP Authentication type

@brief HTTP Client events id

@brief HTTP Client events data

@brief HTTP method

@brief HTTP Client transport

@brief Supported SPI flash sizes

@brief SPI flash clock frequency

@brief SPI flash mode, used in esp_image_header_t

@brief Line ending settings

@brief Log level

@brief MD5 hash for data vector

MQTT connection error codes propagated via ERROR event

@brief MQTT error code structure to be passed as a contextual information into ERROR event

MQTT connection error codes propagated via ERROR event

@brief MQTT event types.

MQTT protocol version used for connection

@brief Generic esp_netif configuration

@brief Supported options for DHCP client or DHCP server

@brief Mode for DHCP client or DHCP server option functions

@brief Status of DHCP client or DHCP server

@brief Type of DNS server

@brief Specific IO driver configuration

@brief IO driver handle type

@brief Specific L3 network stack configuration

@brief ESP-NETIF Receive function type

@brief One-Key CBC MAC (OMAC1) hash with AES-128 for MIC computation

@brief Opaque handle for an application OTA update

OTA_DATA states for checking operability of the app.

@brief Opaque partition iterator type

@brief Partition subtype

@brief Partition type

@brief SHA1-based key derivation function (PBKDF2) for IEEE 802.11i

@brief Type of “ping” session handle

@brief Profile of ping session

@brief Opaque handle to the power management lock

@brief Power management constraints

@brief XOR RC4 stream to given data with skip-stream-start

@brief Reset reasons

@brief SHA1-based Pseudo-Random Function (PRF) (IEEE 802.11i, 8.5.1.1)

@brief SHA-1 hash for data vector

@brief The AES callback function when do STA connect.

@brief Logic function used for EXT1 wakeup mode.

@brief Power domains which can be powered down in sleep mode

@brief Power down options

@brief Sleep wakeup cause

@brief Sleep wakeup cause

@brief Timer callback function type @param arg pointer to opaque user-specific data

@brief Method for dispatching timer callback

@brief Opaque type representing a single esp_timer

@brief ESP-TLS configuration parameters

@brief ESP-TLS Connection State

@brief ESP-TLS Connection State

Definition of different types/sources of error codes reported from different components

@brief Error structure containing relevant errors in case tls error occurred

@brief ESP-TLS Connection Handle

@brief Function signature for received Vendor-Specific Information Element callback. @param ctx Context argument, as passed to esp_wifi_set_vendor_ie_cb() when registering callback. @param type Information element type, based on frame type received. @param sa Source 802.11 address. @param vnd_ie Pointer to the vendor specific element data received. @param rssi Received signal strength indication.

@brief Configuration arguments for esp_vfs_fat_sdmmc_mount and esp_vfs_fat_spiflash_mount functions

Handle of an ESSL device

@brief Ethernet duplex mode

@brief Ethernet event declarations

@brief Ethernet link status

@brief Ethernet speed

@addtogroup ets_intr_apis @{

@addtogroup ets_apis @{

@endcond

@brief Function prototype for closing a session.

@brief HTTP Server Configuration Structure

@brief Error codes sent as HTTP response in case of errors encountered during processing of an HTTP request

@brief Function prototype for HTTP error handling.

@brief Prototype for freeing context data (if any) @param[in] ctx object to free

@brief HTTP Server Instance Handle

@brief Function prototype for opening a session.

@brief Prototype for HTTPDs low-level “get pending bytes” function

@brief Prototype for HTTPDs low-level recv function

@brief HTTP Request Data Structure

@brief Prototype for HTTPDs low-level send function

@brief Function prototype for URI matching.

@brief Structure for URI handler

@brief Prototype of the HTTPD work function Please refer to httpd_queue_work() for more details. @param[in] arg The arguments for this work function

@brief I2C port number, can be I2C_NUM_0 ~ (I2C_NUM_MAX-1).

@brief I2C clock source, sorting from smallest to largest, place them in order. This can be expanded in the future use.

@brief I2S bit width per sample.

@brief I2S channel format type

@brief I2S channel.

@brief I2S source clock

@brief I2S communication standard format

@brief I2S DAC mode for i2s_set_dac_mode.

@brief I2S event types

@brief I2S Mode, defaut is I2S_MODE_MASTER | I2S_MODE_TX

@brief I2S port number, the max port number is (I2S_NUM_MAX -1).

Handle to an interrupt handler

Function prototype for interrupt handler function

This is the aligned version of ip4_addr_t, used as local variable, on the stack, etc.

This is the aligned version of ip6_addr_t, used as local variable, on the stack, etc.

@ingroup ipaddr A union struct for both IP version’s addresses. ATTENTION: watch out for its size when adding IPv6 address scope!

IP event declarations

@ingroup iana Hardware types

@ingroup iana Port numbers https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt

@ingroup ipaddr IP address types for use in ip_addr_t.type member. @see tcp_new_ip_type(), udp_new_ip_type(), raw_new_ip_type().

Symbolic constants for the ‘type’ parameters in some of the macros. These exist for efficiency only, allowing the macros to avoid certain tests when the address is known not to be of a certain type. Dead code elimination will do the rest. IP6_MULTICAST is supported but currently not optimized. @see ip6_addr_has_scope, ip6_addr_assign_zone, ip6_addr_lacks_zone.

\brief AES context structure

\brief The AES XTS context-type definition.

\brief Supported cipher types.

Supported cipher modes.

Supported cipher padding types.

\brief Supported {cipher type, cipher mode} pairs.

Defines the source of the imported EC key.

\brief The ECP key-pair structure.

Domain-parameter identifiers: curve, subgroup, and generator.

\brief Entropy poll callback pointer

\brief Supported message digests.

\brief Flags for mbedtls_mpi_gen_prime()

Type of operation.

\brief Types for interfacing with the debug module

\brief Types for RSA-alt abstraction

\brief Public key types

\brief Callback type: verify a cookie

\brief Callback type: generate a cookie

\brief Callback type: Export key block and master secret

\brief Callback type: get status of timers/delays

\brief Callback type: receive data from the network.

\brief Callback type: receive data from the network, with timeout

\brief Callback type: send data on the network.

\brief Callback type: set a pair of timers/delays to watch

\brief Callback type: parse and load session ticket

\brief Callback type: generate and write session ticket

Container for ASN1 bit strings.

Type-length-value structure that allows for ASN1 using DER.

Container for a sequence or list of ‘named’ ASN.1 data items

Container for a sequence of ASN.1 items

@brief mDNS query linked list IP item

@brief mDNS enum to specify the ip_protocol type

@brief mDNS query result structure

Create the list of all memory pools managed by memp. MEMP_MAX represents a NULL pool at the end

@brief Opaque handle to a registered heap

@ingroup netif Function used for extended netif status callbacks Note: When parsing reason argument, keep in mind that more reasons may be added in the future! @param netif netif that is affected by change @param reason change reason @param args depends on reason, see reason description

Function prototype for netif igmp_mac_filter functions

Function prototype for netif init functions. Set up flags and output/linkoutput callback functions in this function.

Function prototype for netif->input functions. This function is saved as ‘input’ callback function in the netif struct. Call it when a packet has been received.

Function prototype for netif->linkoutput functions. Only used for ethernet netifs. This function is called by ARP when a packet shall be sent.

MAC Filter Actions, these are passed to a netif’s igmp_mac_filter or mld_mac_filter callback function.

Function prototype for netif mld_mac_filter functions

@ingroup netif Extended netif status callback (NSC) reasons flags. May be extended in the future!

Function prototype for netif->output functions. Called by lwIP when a packet shall be sent. For ethernet netif, set this to ‘etharp_output’ and set ‘linkoutput’.

Function prototype for netif->output_ip6 functions. Called by lwIP when a packet shall be sent. For ethernet netif, set this to ‘ethip6_output’ and set ‘linkoutput’.

Function prototype for netif status- or link-callback functions.

Opaque pointer type representing non-volatile storage handle

Opaque pointer type representing iterator to nvs entries

@brief Mode of opening the non-volatile storage

@brief Mode of opening the non-volatile storage

@brief Types of variables

Prototype for a function to free a custom pbuf

@ingroup pbuf Enumeration of pbuf layers

@ingroup pbuf Enumeration of pbuf types

@brief ESP-TLS preshared key and hint structure

@brief RMT Carrier Level

@brief RMT Channel Status

@brief RMT channel ID

@brief RMT Data Mode

@brief RMT Idle Level

@brief RMT interrupt handle

@brief RMT Internal Memory Owner

@brief RMT Channel Working Mode (TX or RX)

@brief Clock Source of RMT Channel

@brief Type of RMT Tx End callback function

@brief Clock source to be calibrated using rtc_clk_cal function

@brief CPU clock configuration structure

@brief CPU clock source

@brief CPU frequency values

@brief RTC FAST_CLK frequency values

RTCIO output/input mode type.

@brief RTC SLOW_CLK frequency values

@brief Possible main XTAL frequency values.

@brief User callback function to convert uint8_t type data to rmt format(rmt_item32_t).

SD/MMC command response buffer

Handle representing an SD SPI device

Shutdown handler type

@brief Sigma-delta channel list

@brief SIGMADELTA port number, the max port number is (SIGMADELTA_NUM_MAX -1).

SNTP time update mode

SNTP sync status

@brief SNTP callback function for notifying about time sync event

@brief SPI DMA channels

@brief SPI DMA channels

SPI Events

@brief SPI flash critical section exit function.

@brief SPI flash critical section enter function.

Host driver configuration and context structure.

@brief Function to protect SPI flash critical regions corruption.

@brief Opaque handle for memory region obtained from spi_flash_mmap.

@brief Enumeration which specifies memory space requested in an mmap call

@brief SPI flash operation lock function.

@brief SPI flash operation unlock function.

@brief Function to yield to the OS during erase operation.

@brief Enum with the three SPI peripherals that are software-accessible in it

Argument structure for WIFI_EVENT_AP_PROBEREQRECVED event

Argument structure for WIFI_EVENT_AP_STACONNECTED event

Argument structure for WIFI_EVENT_AP_STADISCONNECTED event

Event structure for IP_EVENT_AP_STAIPASSIGNED event

@brief Application specified event callback function

Argument structure for WIFI_EVENT_FTM_REPORT event

Event structure for IP_EVENT_GOT_IP6 event

Event handler function type

System event types enumeration

Argument structure for WIFI_EVENT_STA_AUTHMODE_CHANGE event

Argument structure for WIFI_EVENT_STA_CONNECTED event

Argument structure for WIFI_EVENT_STA_DISCONNECTED event

Argument structure of event

Argument structure for WIFI_EVENT_SCAN_DONE event

Argument structure for WIFI_EVENT_STA_WPS_ER_PIN event

Argument structure for WIFI_EVENT_STA_WPS_ER_SUCCESS event

Argument structure for WIFI_EVENT_STA_WPS_ER_FAILED event

@brief Supported options for DHCP client or DHCP server

@brief Mode for DHCP client or DHCP server option functions

@brief Status of DHCP client or DHCP server

@brief DNS server info

@brief Type of DNS server

@brief station list info element

@brief station list structure

@brief Decides whether to enable alarm mode

@brief Select if Alarm needs to be loaded by software or automatically reload by hardware.

@brief Decides the direction of counter

@brief Selects a Timer-Group out of 2 available groups

@brief Select a hardware timer from timer groups

@brief Select interrupt type if running in alarm mode.

@brief Interrupt types of the timer.

@brief Interrupt handle, used in order to free the isr after use. Aliases to an int handle for now.

@brief Interrupt handle callback function. User need to retrun a bool value in callback.

@brief Select timer source clock.

@brief Decides whether timer is on or paused

@brief Keep alive parameters structure

Touch sensor charge/discharge speed

Touch sensor filter configuration

@brief Touch channel IIR filter coefficient configuration. @note On ESP32S2. There is an error in the IIR calculation. The magnitude of the error is twice the filter coefficient. So please select a smaller filter coefficient on the basis of meeting the filtering requirements. Recommended filter coefficient selection IIR_16.

Touch sensor FSM mode

Touch sensor high reference voltage

Touch sensor low reference voltage

Touch channel idle state configuration

Touch sensor denoise configuration

Touch sensor shield channel drive capability level

Touch pad channel

Touch sensor waterproof configuration

@brief Level of filter applied on the original data against large noise interference. @note On ESP32S2. There is an error in the IIR calculation. The magnitude of the error is twice the filter coefficient. So please select a smaller filter coefficient on the basis of meeting the filtering requirements. Recommended filter coefficient selection IIR_2.

Touch sensor initial charge level

Touch sensor high reference voltage attenuation

@brief TWAI Controller operating modes

@brief TWAI driver states

@brief UART event types used in the ring buffer

@brief UART hardware flow control modes

@brief UART mode selection

@brief UART parity constants

@brief UART port number, can be UART_NUM_0 ~ (UART_NUM_MAX -1).

@brief UART source clock

@brief UART signal bit map

@brief UART stop bits number

@brief UART word length constants

@brief The Rx callback function of Action Tx operations

@brief WiFi antenna mode

@brief WiFi antenna

@brief The RX callback function of Channel State Information(CSI) data.

Argument structure for WIFI_EVENT_STA_WPS_ER_FAILED event

WiFi event declarations

@brief FTM operation status types

@brief Forward declaration of WiFi interface handle

@brief WiFi PHY rate encodings

@brief The RX callback function in the promiscuous mode. Each time a packet is received, the callback function will be called.

@brief Promiscuous frame type

@brief Vendor Information Element index

@brief Vendor Information Element type

@brief wear levelling handle

Unions

@ingroup netif Argument supplied to netif_ext_callback_fn.

Union of all possible system_event argument structures

@brief Configuration data for ESP32 AP or STA.